import { type VaultRow } from "../registry/repo.js"; import { type MeshRow } from "../registry/meshes-repo.js"; import { type LocalWritability, type WritabilityVerdict } from "./writability.js"; import { type DestinationPresentation } from "./destination-presentation.js"; import { type DestinationPolicyContext } from "./federation/destination-policy-service.js"; import type { GhExecutor } from "../util/gh-discover.js"; import { type DetectedLicense } from "../util/license-detect.js"; export interface InboundEdgeProjection { sourceVaultRid: string; targetVaultRid: string; edgeType: "parent_vault"; } export interface VaultLicensePosture { public: boolean; license: string | null; bucket: DetectedLicense["bucket"]; } export type PublishabilityVerdict = WritabilityVerdict | { writable: false; reason: "destination-local" | "foreign" | "missing-policy" | "quarantined-policy" | "contradictory-policy" | "ambiguous-authority"; }; export interface InfoFlowResult { vault: { rid: string; name: string; displayName: string; originCoordinate: string | null; path: string; status: VaultRow["status"]; tierHint: string | null; parentVault: string | null; memscopeRid: string | null; homeMeshRid: string | null; gitUrl: string | null; acquisitionSource: VaultRow["source"]; destination: DestinationPresentation; permissionObservation: { scope: "ephemeral"; result: "verified" | "denied" | "unknown"; evidence: WritabilityVerdict["reason"]; }; onlineState: "unknown"; upstreamState: "unknown"; createdAt: string | null; registeredAt: string; lastVerifiedAt: string | null; verifyFailCount: number; localWritable: LocalWritability["localWritable"]; localWritableReason: LocalWritability["reason"]; publishable: PublishabilityVerdict["writable"]; publishableReason: PublishabilityVerdict["reason"]; writable: PublishabilityVerdict["writable"]; writableDetermination: PublishabilityVerdict["reason"]; }; edges: InboundEdgeProjection[]; inboundEdges: InboundEdgeProjection[]; sizeBytes: number; fileCount: number; licensePosture: VaultLicensePosture; } export interface InfoVaultFlowOpts { gh?: GhExecutor; ghAuthOk?: () => boolean | null; } export declare function infoVaultFlow(name: string, opts?: InfoVaultFlowOpts): Promise; export declare function applyDestinationPublishability(destination: DestinationPresentation, permission: WritabilityVerdict, hasPublicationAuthority: boolean): PublishabilityVerdict; export declare function deriveInfoPublishability(vault: VaultRow, mesh: MeshRow | null | undefined, context: DestinationPolicyContext, destination: DestinationPresentation, permission: WritabilityVerdict): PublishabilityVerdict; export declare function formatBytes(bytes: number): string; export declare function resolveVaultNameByPath(path: string): Promise; //# sourceMappingURL=info.d.ts.map