import type { CharterCore, CharterSignature, Office, OfficeRegistry, OfficeTransfer, CharterAmendment, CharterVerification, AmendmentVerification, DelegationSurvival, DissolutionPolicy, DisputeVenue, SuccessionRule, SuccessionTrigger, QuorumFailurePolicy } from '../types/charter.js'; import type { MultiClassThresholdPolicy, ApprovalRequest, ApprovalSignature, ApprovalSubjectType, ApprovalEvaluation, ApprovalPolicy } from '../types/approval.js'; import type { AttributionReceipt } from '../v2/attribution-consent/index.js'; export interface CreateCharterOptions { name: string; offices: Office[]; amendmentPolicy: MultiClassThresholdPolicy; dissolutionPolicy: DissolutionPolicy; delegationSurvival: DelegationSurvival; disputeVenue?: DisputeVenue; founderPrivateKey: string; founderPublicKey: string; founderRole: string; version?: string; /** Optional AttributionConsent citations. See verifyCharter. */ citations?: import('../v2/attribution-consent/index.js').ArtifactCitation[]; } /** Create a new charter. The founder signs it as the first founding signatory. * Additional signatories can be added with signCharter() until the * amendment policy threshold is met. */ export declare function createCharter(opts: CreateCharterOptions): CharterCore; /** Add a founding signature to a charter. Returns a new charter * with the additional signature and a re-signed outer signature. */ export declare function signCharter(charter: CharterCore, signerPrivateKey: string, signerPublicKey: string, signerRole: string, resignerPrivateKey: string): CharterCore; /** Verify a charter's integrity: content hash, signatures, office consistency. */ export declare function verifyCharter(charter: CharterCore, attributionReceipts?: AttributionReceipt[]): CharterVerification; /** Evaluate whether a set of signatures satisfies a multi-class threshold policy. * All class requirements must be met (conjunction). Review Q5. */ export declare function evaluateThreshold(policy: MultiClassThresholdPolicy, signatures: ApprovalSignature[]): ApprovalEvaluation; export interface CreateAmendmentOptions { charter: CharterCore; proposedCharter: CharterCore; description: string; proposerPrivateKey: string; proposerPublicKey: string; effectiveAt?: string; } /** Create a charter amendment proposal. Does NOT apply it — * signatures must be collected and threshold evaluated first. */ export declare function createAmendment(opts: CreateAmendmentOptions): CharterAmendment; /** Add a signature to a charter amendment. */ export declare function signAmendment(amendment: CharterAmendment, signerPrivateKey: string, signerPublicKey: string, signerRole: string): CharterAmendment; /** Verify a charter amendment against the charter's amendment policy. */ export declare function verifyAmendment(amendment: CharterAmendment, charter: CharterCore): AmendmentVerification; /** Create an OfficeRegistry from a charter's offices. */ export declare function createOfficeRegistry(charter: CharterCore, successionRules: SuccessionRule[], quorumFailurePolicies: QuorumFailurePolicy[], signerPrivateKey: string): OfficeRegistry; export interface CreateOfficeTransferOptions { charter: CharterCore; officeId: string; fromHolder: string | null; toHolder: string | null; trigger: SuccessionTrigger | 'appointment' | 'resignation'; delegationHandling: 'frozen' | 'transferred' | 'revoked'; approvalSignatures: CharterSignature[]; signerPrivateKey: string; } /** Record an office holder change. */ export declare function createOfficeTransfer(opts: CreateOfficeTransferOptions): OfficeTransfer; /** Create an approval request for a multi-party action. */ export declare function createApprovalRequest(policyId: string, subject: string, subjectType: ApprovalSubjectType, requestedBy: string, timeoutSeconds: number): ApprovalRequest; /** Add a signature to an approval request. Validates the signer * is not a duplicate and the request hasn't expired. */ export declare function addApprovalSignature(request: ApprovalRequest, signerPrivateKey: string, signerPublicKey: string, keyClass: string, officeId?: string): ApprovalRequest; /** Evaluate an approval request against its policy. For 'threshold' * type, delegates to evaluateThreshold. For simpler types, does * direct checks. Returns the updated request with status. */ export declare function evaluateApprovalRequest(request: ApprovalRequest, policy: ApprovalPolicy): { request: ApprovalRequest; evaluation: ApprovalEvaluation; }; /** Find an office by ID within a charter. */ export declare function findOffice(charter: CharterCore, officeId: string): Office | undefined; /** Find which office(s) a public key holds. */ export declare function findOfficesByHolder(charter: CharterCore, publicKey: string): Office[]; /** Resolve the successor office for a vacant office. Walks the * succession order and returns the first non-vacant office. */ export declare function resolveSuccessor(charter: CharterCore, officeId: string): Office | null; /** Check if a holder can take an office without violating * incompatibility constraints (GPT #20). */ export declare function checkIncompatibility(charter: CharterCore, officeId: string, holderPublicKey: string): { compatible: boolean; conflicts: string[]; }; /** Check if an office has quorum per its QuorumFailurePolicy. */ export declare function checkQuorum(office: Office, policy: QuorumFailurePolicy | undefined): { hasQuorum: boolean; holders: number; required: number; }; /** Check if a charter is in dissolution grace period. */ export declare function isInDissolutionGrace(charter: CharterCore): boolean; /** Verify an office transfer signature. */ export declare function verifyOfficeTransfer(transfer: OfficeTransfer): boolean; //# sourceMappingURL=charter.d.ts.map