export type GovernanceChangeType = 'strengthening' | 'neutral' | 'weakening' | 'mixed' | 'initial';
export interface GovernanceDiff {
    changeType: GovernanceChangeType;
    additions: string[];
    modifications: string[];
    removals: string[];
    isWeakening: boolean;
    isStrengthening: boolean;
}
export interface GovernanceArtifact {
    artifactId: string;
    artifactType: 'floor' | 'policy' | 'config' | 'delegation-template' | 'custom';
    version: string;
    previousVersion: string | null;
    previousArtifactId: string | null;
    contentHash: string;
    content: string;
    issuer: string;
    effectiveFrom: string;
    expiresAt: string | null;
    breaking: boolean;
    supersedes: string | null;
    rollbackAllowed: boolean;
    changeType: GovernanceChangeType;
    additions: string[];
    modifications: string[];
    removals: string[];
    credentialLifecycle?: CredentialLifecyclePolicy;
    metadata: Record<string, unknown>;
    createdAt: string;
    signature: string;
}
export interface GovernanceEnvelope {
    artifact: GovernanceArtifact;
    approvals: GovernanceApproval[];
}
export interface GovernanceApproval {
    approver: string;
    approvedAt: string;
    artifactId: string;
    contentHash: string;
    signature: string;
}
export interface GovernanceVerification {
    valid: boolean;
    errors: string[];
    contentIntegrity: boolean;
    signatureValid: boolean;
    chainValid: boolean;
    notExpired: boolean;
    approvalsValid: boolean;
    weakeningApproved: boolean;
}
export interface GovernanceLoadPolicy {
    requireSignature: boolean;
    requireApprovals: number;
    allowedIssuers: string[];
    allowExpired: boolean;
    allowBreakingWithoutApproval: boolean;
    requireApprovalsForWeakening: number;
    requireApprovalsForRemoval: number;
    blockWeakeningWithoutApproval: boolean;
}
export declare const DEFAULT_LOAD_POLICY: GovernanceLoadPolicy;
export interface CredentialLifecyclePolicy {
    /** Maximum session duration in seconds before re-authentication required */
    maxSessionDurationSeconds: number;
    /** Optional URL for real-time revocation checks */
    revocationEndpoint?: string;
    /** Credential time-to-live in seconds from issuance */
    credentialTTLSeconds: number;
    /** How often (seconds) to poll revocation endpoint */
    revocationCheckFrequencySeconds: number;
}
//# sourceMappingURL=governance.d.ts.map