import { type HushNamespace, type HushRole, V3_SCHEMA_VERSION } from './schema.js'; export type HushIdentityName = string; export type HushBundleName = string; export type HushTargetName = string; export type HushImportName = string; export type HushLogicalPath = string; export type HushFilePath = string; export type HushArtifactFormat = 'dotenv' | 'wrangler' | 'json' | 'shell' | 'yaml' | 'env' | 'binary' | (string & {}); export type HushScalarValue = string | number | boolean | null | HushScalarValue[] | { [key: string]: HushScalarValue; }; export interface HushIdentityRecord { roles: HushRole[]; description?: string; } export interface HushReaders { roles: HushRole[]; identities: HushIdentityName[]; } export interface HushValueEntry { value: HushScalarValue; sensitive: boolean; } export interface HushArtifactFileEntry { type: 'file'; format: HushArtifactFormat; sensitive: boolean; value?: string; filename?: string; subpath?: string; materializeAs?: string; } export interface HushArtifactBinaryEntry { type: 'binary'; format: HushArtifactFormat; sensitive: boolean; value?: string; encoding?: 'base64' | 'utf8'; filename?: string; subpath?: string; materializeAs?: string; } export type HushArtifactEntry = HushArtifactFileEntry | HushArtifactBinaryEntry; export type HushFileEntry = HushValueEntry | HushArtifactEntry; export interface HushFileDocument { path: HushFilePath; readers: HushReaders; sensitive: boolean; entries: Record; } export interface HushFileIndexEntry { path: HushFilePath; readers: HushReaders; sensitive: boolean; logicalPaths: HushLogicalPath[]; } export interface HushBundleFileRef { path: HushFilePath; } export interface HushBundleImportRef { bundle?: HushBundleName | HushLogicalPath; file?: HushFilePath; project?: HushImportName; } export interface HushImportPullSpec { bundles?: HushLogicalPath[]; files?: HushFilePath[]; artifacts?: HushLogicalPath[]; } export interface HushImportDefinition { project: string; pull: HushImportPullSpec; } export interface HushBundleDefinition { files?: HushBundleFileRef[]; imports?: HushBundleImportRef[]; paths?: HushLogicalPath[]; } export interface HushTargetDefinition { bundle?: HushBundleName; path?: HushLogicalPath; format: HushArtifactFormat; mode?: 'process' | 'file' | 'example'; filename?: string; subpath?: string; materializeAs?: string; } export interface HushManifestDocument { version: typeof V3_SCHEMA_VERSION; activeIdentity?: HushIdentityName; identities: Record; fileIndex?: Record; imports?: Record; bundles?: Record; targets?: Record; metadata?: Record; } export interface HushProvenanceImportRecord { project: string; bundle?: HushLogicalPath; file?: HushFilePath; } export interface HushProvenanceRecord { logicalPath: HushLogicalPath; namespace: HushNamespace; filePath: HushFilePath; bundle?: HushBundleName; import?: HushProvenanceImportRecord; } export interface HushResolvedValue { path: HushLogicalPath; entry: HushFileEntry; provenance: HushProvenanceRecord[]; } export interface HushBundleConflict { path: HushLogicalPath; contenders: HushProvenanceRecord[]; } export interface HushResolverResult { identity: HushIdentityName; bundle?: HushBundleName; values: Record; artifacts: Record; unreadableFiles: HushFilePath[]; conflicts: HushBundleConflict[]; } export declare function createIdentityRecord(identity: HushIdentityRecord): HushIdentityRecord; export declare function createReaders(readers: HushReaders): HushReaders; export declare function createFileDocument(file: HushFileDocument): HushFileDocument; export declare function createFileIndexEntry(file: HushFileDocument): HushFileIndexEntry; export declare function createImportDefinition(definition: HushImportDefinition): HushImportDefinition; export declare function createBundleDefinition(bundle: HushBundleDefinition): HushBundleDefinition; export declare function createTargetDefinition(target: HushTargetDefinition): HushTargetDefinition; export declare function createManifestDocument(manifest: HushManifestDocument): HushManifestDocument; export declare function isIdentityAllowed(readers: HushReaders, identity: HushIdentityName, role: HushRole): boolean; export declare function upsertManifestFileIndexEntry(manifest: HushManifestDocument, filePath: HushFilePath, entry: HushFileIndexEntry): HushManifestDocument; export declare function createProvenanceRecord(record: HushProvenanceRecord): HushProvenanceRecord; //# sourceMappingURL=domain.d.ts.map