import type { HybridTimestamp } from '../../types/time.js';
import type { ProvisionalStatement, AgentDID, PrincipalDID, Ed25519Signature } from './types.js';
/** Canonical payload an author signs to attest a provisional statement.
 *  Verifiers reconstruct this exact payload to check author_signature. */
export declare function statementSigningPayload(s: {
    id: string;
    version: '1.0';
    author: AgentDID;
    author_principal: PrincipalDID;
    content: string;
    created_at: HybridTimestamp;
    dead_man_expires_at?: HybridTimestamp;
}): string;
export interface CreateProvisionalParams {
    author: AgentDID;
    author_principal: PrincipalDID;
    content: string;
    /** Ed25519 private key (hex) controlling the author DID. */
    authorPrivateKey: string;
    /** Gateway id used to stamp the hybrid timestamp. */
    gatewayId: string;
    /** Optional dead-man expiry. Construct via createHybridTimestamp or pass through. */
    dead_man_expires_at?: HybridTimestamp;
    /** Override id for test determinism. */
    id?: string;
}
export declare function createProvisional(params: CreateProvisionalParams): ProvisionalStatement;
/** Returns true only for promoted statements with a verifying promotion.
 *  Provisional and withdrawn statements are never binding. This check
 *  does not re-verify the PromotionEvent signature — use verifyPromotion
 *  for the full cryptographic check. */
export declare function isBinding(statement: ProvisionalStatement): boolean;
/** Verify the author's signature over the statement's signed fields.
 *  Returns false if the content or any signed field was tampered with
 *  after signing. */
export declare function verifyAuthorSignature(statement: ProvisionalStatement): boolean;
/** Withdraw a provisional statement. The caller must supply a signature
 *  from the author over the withdrawal payload. Already-promoted
 *  statements cannot be withdrawn. */
export declare function withdrawProvisional(statement: ProvisionalStatement, author_sig: Ed25519Signature): ProvisionalStatement;
/** Compute the withdrawal payload an author must sign. */
export declare function withdrawalPayload(statement_id: string): string;
//# sourceMappingURL=create.d.ts.map