@serve.zone/interfaces 30.7.0 → 30.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/changelog.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026-09-13 - 30.9.0
4
+
5
+ ### Features
6
+
7
+ - Add durable native protection receipts, authenticated report bindings and complete affected-worker protection prerequisites for network allocation.
8
+
9
+ ## 2026-09-13 - 30.8.1
10
+
11
+ ### Fixes
12
+
13
+ - Exclude internal development notes from published npm artifacts using a non-readme filename.
14
+
15
+ ## 2026-09-13 - 30.8.0
16
+
17
+ ### Features
18
+
19
+ - Add immutable workload address leases, complete private-network and DNS projections, explicit withdrawal admission, dedicated Ed25519 signing authority, and authenticated runtime delivery contracts.
20
+
3
21
  ## 2026-09-13 - 30.7.0
4
22
 
5
23
  ### Features
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/interfaces',
6
- version: '30.7.0',
6
+ version: '30.9.0',
7
7
  description: 'Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLHVGQUF1RjtDQUNyRyxDQUFBIn0=
@@ -23,6 +23,10 @@ export * from './mail.js';
23
23
  export * from './nodecredential.js';
24
24
  export * from './nodeenrollment.js';
25
25
  export * from './networkauthority.js';
26
+ export * from './networkdelivery.js';
27
+ export * from './networkprojection.js';
28
+ export * from './networkprotection.js';
29
+ export * from './networksigning.js';
26
30
  export * from './privatenetwork.js';
27
31
  export * from './registry.js';
28
32
  export * from './runtimeassignment.js';
@@ -23,6 +23,10 @@ export * from './mail.js';
23
23
  export * from './nodecredential.js';
24
24
  export * from './nodeenrollment.js';
25
25
  export * from './networkauthority.js';
26
+ export * from './networkdelivery.js';
27
+ export * from './networkprojection.js';
28
+ export * from './networkprotection.js';
29
+ export * from './networksigning.js';
26
30
  export * from './privatenetwork.js';
27
31
  export * from './registry.js';
28
32
  export * from './runtimeassignment.js';
@@ -45,4 +49,4 @@ export * from './traffic.js';
45
49
  export * from './user.js';
46
50
  export * from './version.js';
47
51
  export * from './webpush.js';
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9kYXRhL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGNBQWMsQ0FBQyJ9
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9kYXRhL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDIn0=
@@ -0,0 +1,25 @@
1
+ import type { IRuntimeAuthorityReferenceV1 } from './runtimeassignment.js';
2
+ import type { IRuntimeSessionBindingV1 } from './runtimesession.js';
3
+ import type { IRuntimeNetworkSigningAuthorityV1, ISignedRuntimeNetworkProjectionV1 } from './networksigning.js';
4
+ export interface IApplyRuntimeNetworkSigningAuthorityRequestV1 {
5
+ session: IRuntimeSessionBindingV1;
6
+ authority: IRuntimeNetworkSigningAuthorityV1;
7
+ }
8
+ export interface IApplyRuntimeNetworkProjectionRequestV1 {
9
+ session: IRuntimeSessionBindingV1;
10
+ signed: ISignedRuntimeNetworkProjectionV1;
11
+ }
12
+ /** Durable admission only. No packet, DNS, pool-activation, fencing or readiness assertion. */
13
+ export interface IApplyRuntimeNetworkAuthorityResponseV1 {
14
+ status: 'accepted' | 'replay';
15
+ authority: IRuntimeAuthorityReferenceV1;
16
+ }
17
+ export declare const snapshotApplyRuntimeNetworkSigningAuthorityRequestV1: (value: unknown) => IApplyRuntimeNetworkSigningAuthorityRequestV1;
18
+ export declare const snapshotApplyRuntimeNetworkProjectionRequestV1: (value: unknown) => IApplyRuntimeNetworkProjectionRequestV1;
19
+ export declare const snapshotApplyRuntimeNetworkAuthorityResponseV1: (value: unknown) => IApplyRuntimeNetworkAuthorityResponseV1;
20
+ /** trustedSessionValue must come from the receiving CURRENT physical connection. */
21
+ export declare const bindApplyRuntimeNetworkSigningAuthorityRequestV1: (value: unknown, trustedSessionValue: unknown) => IApplyRuntimeNetworkSigningAuthorityRequestV1;
22
+ /** Content binding only. Verify signature with stored trust and atomically fence admission. */
23
+ export declare const bindApplyRuntimeNetworkProjectionRequestV1: (value: unknown, trustedSessionValue: unknown) => IApplyRuntimeNetworkProjectionRequestV1;
24
+ /** Compare ACK with the exact SENT key or projection reference, never with a response-derived value. */
25
+ export declare const bindApplyRuntimeNetworkAuthorityResponseV1: (value: unknown, sentReferenceValue: unknown) => IApplyRuntimeNetworkAuthorityResponseV1;
@@ -0,0 +1,38 @@
1
+ import { snapshotRuntimeSessionBindingV1 } from './runtimesession.js';
2
+ import { snapshotRuntimeNetworkSigningAuthorityV1, snapshotSignedRuntimeNetworkProjectionV1 } from './networksigning.js';
3
+ import { captureNetwork, networkEqual, networkRecord, networkReference, networkReferenceOf, networkSafe, requireNetwork } from '../private/networkcontract.js';
4
+ export const snapshotApplyRuntimeNetworkSigningAuthorityRequestV1 = (value) => networkSafe(() => {
5
+ const item = networkRecord(captureNetwork(value), ['session', 'authority']);
6
+ return { session: snapshotRuntimeSessionBindingV1(item.session), authority: snapshotRuntimeNetworkSigningAuthorityV1(item.authority) };
7
+ });
8
+ export const snapshotApplyRuntimeNetworkProjectionRequestV1 = (value) => networkSafe(() => {
9
+ const item = networkRecord(captureNetwork(value), ['session', 'signed']);
10
+ return { session: snapshotRuntimeSessionBindingV1(item.session), signed: snapshotSignedRuntimeNetworkProjectionV1(item.signed) };
11
+ });
12
+ export const snapshotApplyRuntimeNetworkAuthorityResponseV1 = (value) => networkSafe(() => {
13
+ const item = networkRecord(captureNetwork(value), ['status', 'authority']);
14
+ requireNetwork(item.status === 'accepted' || item.status === 'replay');
15
+ return { status: item.status, authority: networkReference(item.authority) };
16
+ });
17
+ /** trustedSessionValue must come from the receiving CURRENT physical connection. */
18
+ export const bindApplyRuntimeNetworkSigningAuthorityRequestV1 = (value, trustedSessionValue) => networkSafe(() => {
19
+ const request = snapshotApplyRuntimeNetworkSigningAuthorityRequestV1(value), session = snapshotRuntimeSessionBindingV1(trustedSessionValue);
20
+ requireNetwork(networkEqual(request.session, session) && networkEqual(request.authority.controller, session.controller));
21
+ return request;
22
+ });
23
+ /** Content binding only. Verify signature with stored trust and atomically fence admission. */
24
+ export const bindApplyRuntimeNetworkProjectionRequestV1 = (value, trustedSessionValue) => networkSafe(() => {
25
+ const request = snapshotApplyRuntimeNetworkProjectionRequestV1(value), session = snapshotRuntimeSessionBindingV1(trustedSessionValue);
26
+ const projection = request.signed.projection;
27
+ requireNetwork(networkEqual(request.session, session) && networkEqual(projection.controller, session.controller)
28
+ && projection.nodeId === session.nodeId && projection.runtimeNamespace === session.runtimeNamespace);
29
+ return request;
30
+ });
31
+ /** Compare ACK with the exact SENT key or projection reference, never with a response-derived value. */
32
+ export const bindApplyRuntimeNetworkAuthorityResponseV1 = (value, sentReferenceValue) => networkSafe(() => {
33
+ const response = snapshotApplyRuntimeNetworkAuthorityResponseV1(value);
34
+ const expected = networkReference(captureNetwork(sentReferenceValue));
35
+ requireNetwork(networkEqual(response.authority, networkReferenceOf(expected)));
36
+ return response;
37
+ });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya2RlbGl2ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvZGF0YS9uZXR3b3JrZGVsaXZlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEUsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekgsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQWdCL0osTUFBTSxDQUFDLE1BQU0sb0RBQW9ELEdBQUcsQ0FBQyxLQUFjLEVBQWlELEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFO0lBQ3RKLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUM1RSxPQUFPLEVBQUUsT0FBTyxFQUFFLCtCQUErQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsd0NBQXdDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7QUFDekksQ0FBQyxDQUFDLENBQUM7QUFDSCxNQUFNLENBQUMsTUFBTSw4Q0FBOEMsR0FBRyxDQUFDLEtBQWMsRUFBMkMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7SUFDMUksTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsK0JBQStCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSx3Q0FBd0MsQ0FBQyxJQUFJ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
@@ -0,0 +1,140 @@
1
+ import type { TSha256Digest } from './immutableimage.js';
2
+ import type { IRuntimeAssignmentReferenceV1, IRuntimeAuthorityReferenceV1, IRuntimeControllerV1 } from './runtimeassignment.js';
3
+ import type { IRuntimeNetworkHandoffLeaseV1, IRuntimeNetworkProtectedAuthorityV1 } from './networkauthority.js';
4
+ import type { IPrivateNetworkV1, IServicePrivateNetworksV1, IServicePrivateNetworkDnsPolicyV1 } from './privatenetwork.js';
5
+ export interface IRuntimeNetworkNodeScopeV1 {
6
+ controller: IRuntimeControllerV1;
7
+ nodeId: string;
8
+ runtimeNamespace: string;
9
+ }
10
+ /** Immutable per-attempt address material. Membership and projection revisions are independent. */
11
+ export interface IRuntimeNetworkWorkloadLeaseV1 extends IRuntimeNetworkNodeScopeV1 {
12
+ schemaVersion: 1;
13
+ id: string;
14
+ /** Allocation incarnation, not a mutable desired-state revision. */
15
+ generation: number;
16
+ organizationId: string;
17
+ assignmentId: string;
18
+ serviceId: string;
19
+ replicaId: string;
20
+ attemptId: string;
21
+ protectedAuthority: IRuntimeAuthorityReferenceV1;
22
+ routerIncarnationId: string;
23
+ ipv4: {
24
+ poolId: string;
25
+ /** Dedicated, unbridged point-to-point subnet; never the host transit pool. */
26
+ linkSubnet: string;
27
+ address: string;
28
+ /** Exactly address/32, distinct from the link subnet and node-control prefix. */
29
+ sourcePrefix: string;
30
+ gateway: string;
31
+ };
32
+ /** Router-side reachable address on port 53, injected through CRI dns_config. */
33
+ dnsServer: string;
34
+ digest: TSha256Digest;
35
+ }
36
+ /** Controller-owned readiness evidence. A signature does not prove this evidence's provenance. */
37
+ export interface IRuntimeNetworkEndpointV1 {
38
+ lease: IRuntimeNetworkWorkloadLeaseV1;
39
+ ready: boolean;
40
+ observation: {
41
+ assignment: IRuntimeAssignmentReferenceV1;
42
+ reporterSessionId: string;
43
+ sequence: number;
44
+ digest: TSha256Digest;
45
+ } | null;
46
+ /** TCP/UDP only; the complete protected union remains denied. */
47
+ publicEgress: boolean;
48
+ platformEndpointIds: string[];
49
+ }
50
+ /** Exact directed grant identity; receiver-owned realization resolves the lease to kernel facts. */
51
+ export interface IRuntimeNetworkPacketGrantV1 {
52
+ source: IRuntimeAuthorityReferenceV1;
53
+ destination: {
54
+ kind: 'workload';
55
+ lease: IRuntimeAuthorityReferenceV1;
56
+ } | {
57
+ kind: 'public';
58
+ } | {
59
+ kind: 'platform';
60
+ id: string;
61
+ address: string;
62
+ protocol: 'tcp' | 'udp';
63
+ port: number;
64
+ };
65
+ }
66
+ export interface IRuntimeNetworkProjectionV1 extends IRuntimeNetworkNodeScopeV1 {
67
+ schemaVersion: 1;
68
+ id: string;
69
+ generation: number;
70
+ previous: IRuntimeAuthorityReferenceV1 | null;
71
+ protectedAuthority: IRuntimeNetworkProtectedAuthorityV1;
72
+ /** Exact historical authorities needed to authenticate retained allocation material. */
73
+ allocationAuthorities: IRuntimeNetworkProtectedAuthorityV1[];
74
+ handoff: IRuntimeNetworkHandoffLeaseV1 | null;
75
+ /** COMPLETE relevant definitions, including declared names with no ready replicas. */
76
+ networks: IPrivateNetworkV1[];
77
+ memberships: IServicePrivateNetworksV1[];
78
+ endpoints: IRuntimeNetworkEndpointV1[];
79
+ dns: {
80
+ issuedAt: number;
81
+ notBefore: number;
82
+ expiresAt: number;
83
+ };
84
+ /** Explicit denial intent. Carry until the exact predecessor's application is proven. */
85
+ withdrawals: IRuntimeNetworkPacketGrantV1[];
86
+ retiredLeases: IRuntimeAuthorityReferenceV1[];
87
+ retiredHandoffs: IRuntimeAuthorityReferenceV1[];
88
+ digest: TSha256Digest;
89
+ }
90
+ export interface IRuntimeNetworkDnsViewV1 {
91
+ source: IRuntimeAuthorityReferenceV1;
92
+ sourceAddress: string;
93
+ dnsServer: string;
94
+ policy: IServicePrivateNetworkDnsPolicyV1;
95
+ /** Sorted complete A sets; [] is declared NODATA, never an omitted name. AAAA is NODATA. */
96
+ records: Array<{
97
+ name: string;
98
+ addresses: string[];
99
+ }>;
100
+ }
101
+ export declare const runtimeNetworkProjectionV1Contract: Readonly<{
102
+ readonly workloadDigestDomain: "serve.zone/runtime-network-workload-lease-v1";
103
+ readonly projectionDigestDomain: "serve.zone/runtime-network-projection-v1";
104
+ readonly maximumCanonicalBytes: 917504;
105
+ readonly maximumAllocationAuthorities: 16;
106
+ readonly maximumNetworks: 128;
107
+ readonly maximumMemberships: 256;
108
+ readonly maximumEndpoints: 256;
109
+ readonly maximumGrants: 4096;
110
+ readonly maximumDnsLeaseMs: 900000;
111
+ readonly positiveTtlSeconds: 5;
112
+ readonly negativeTtlSeconds: 1;
113
+ readonly omission: "no-effect-without-explicit-withdrawal";
114
+ readonly packetLifetime: "until-applied-denial-or-independent-fence";
115
+ readonly acknowledgement: "admission-is-not-application-or-readiness";
116
+ readonly allocationReuse: "requires-controller-quarantine-and-all-affected-authority-fences";
117
+ }>;
118
+ export declare const snapshotRuntimeNetworkNodeScopeV1: (value: unknown) => IRuntimeNetworkNodeScopeV1;
119
+ export declare const snapshotRuntimeNetworkWorkloadLeaseV1: (value: unknown) => IRuntimeNetworkWorkloadLeaseV1;
120
+ export declare const computeRuntimeNetworkWorkloadLeaseV1Digest: (value: IRuntimeNetworkWorkloadLeaseV1) => Promise<TSha256Digest>;
121
+ /** Structural snapshot only; use validate/signature/admission helpers before accepting authority. */
122
+ export declare const snapshotRuntimeNetworkProjectionV1: (value: unknown) => IRuntimeNetworkProjectionV1;
123
+ export declare const computeRuntimeNetworkProjectionV1Digest: (value: IRuntimeNetworkProjectionV1) => Promise<TSha256Digest>;
124
+ /** Complete structural, digest, allocation and policy binding. Not an allocation/barrier/readiness proof. */
125
+ export declare const validateRuntimeNetworkProjectionV1: (value: unknown) => Promise<IRuntimeNetworkProjectionV1>;
126
+ /** Complete directed full-mesh and explicitly authorized egress; no DNS readiness dependency. */
127
+ export declare const getRuntimeNetworkProjectionPacketGrantsV1: (value: unknown) => Promise<IRuntimeNetworkPacketGrantV1[]>;
128
+ /** Complete offline DNS material, including authorized names never previously queried. */
129
+ export declare const composeRuntimeNetworkProjectionDnsViewsV1: (value: unknown) => Promise<IRuntimeNetworkDnsViewV1[]>;
130
+ /** Bind immutable address material without a circular assignment-digest dependency. */
131
+ export declare const bindRuntimeNetworkWorkloadLeaseToAssignmentV1: (leaseValue: unknown, assignmentValue: unknown) => Promise<IRuntimeNetworkWorkloadLeaseV1>;
132
+ /**
133
+ * Pure revision decision. appliedPrevious must be the receiver's exact durable,
134
+ * joined application receipt, never an incoming ACK field. All prior accepted
135
+ * material/apply journals survive until effects and DNS/allocation quarantine end.
136
+ */
137
+ export declare const admitRuntimeNetworkProjectionV1: (value: unknown, previousValue: unknown | null, trustedScopeValue: unknown, appliedPreviousValue: unknown | null) => Promise<{
138
+ status: "accepted" | "replay";
139
+ projection: IRuntimeNetworkProjectionV1;
140
+ }>;