import type { GovernanceArtifact, GovernanceApproval, GovernanceVerification, GovernanceEnvelope, GovernanceLoadPolicy, GovernanceChangeType, GovernanceDiff, CredentialLifecyclePolicy } from '../types/governance.js';
export { DEFAULT_LOAD_POLICY } from '../types/governance.js';
export declare function hashContent(content: string): string;
export interface CreateArtifactOptions {
    artifactType: GovernanceArtifact['artifactType'];
    version: string;
    content: string;
    issuerPrivateKey: string;
    issuerPublicKey: string;
    effectiveFrom?: string;
    expiresAt?: string | null;
    breaking?: boolean;
    previousVersion?: string | null;
    previousArtifactId?: string | null;
    supersedes?: string | null;
    rollbackAllowed?: boolean;
    changeType?: GovernanceChangeType;
    additions?: string[];
    modifications?: string[];
    removals?: string[];
    metadata?: Record<string, unknown>;
}
export declare function createGovernanceArtifact(opts: CreateArtifactOptions): GovernanceArtifact;
export declare function verifyGovernanceArtifact(artifact: GovernanceArtifact, previousArtifact?: GovernanceArtifact | null): GovernanceVerification;
export declare function approveArtifact(artifact: GovernanceArtifact, approverPrivateKey: string, approverPublicKey: string): GovernanceApproval;
export declare function verifyApproval(approval: GovernanceApproval, artifact: GovernanceArtifact): boolean;
export declare function createGovernanceEnvelope(artifact: GovernanceArtifact, approvals?: GovernanceApproval[]): GovernanceEnvelope;
export declare function loadGovernanceArtifact(envelope: GovernanceEnvelope, policy: GovernanceLoadPolicy, previousArtifact?: GovernanceArtifact | null): GovernanceVerification;
/**
 * Compare two sets of items (e.g., principle IDs) and classify the change.
 * Items are compared by string identity.
 */
export declare function classifyGovernanceChange(previousItems: string[], currentItems: string[]): GovernanceDiff;
export declare function upgradeGovernanceArtifact(previous: GovernanceArtifact, opts: Omit<CreateArtifactOptions, 'previousVersion' | 'previousArtifactId' | 'artifactType'> & {
    breaking?: boolean;
    changeType?: GovernanceChangeType;
    additions?: string[];
    modifications?: string[];
    removals?: string[];
}): GovernanceArtifact;
export declare function validateCredentialLifecycle(policy: CredentialLifecyclePolicy, currentTime: {
    sessionStartedAt: string;
    credentialIssuedAt: string;
    now?: string;
}): {
    valid: boolean;
    reason?: string;
};
//# sourceMappingURL=governance.d.ts.map