import type CryptoPort from '../../ports/CryptoPort.ts';
import type CodecPort from '../../ports/CodecPort.ts';
import type BoundaryTransitionRecordCodecPort from '../../ports/BoundaryTransitionRecordCodecPort.ts';
import type WarpState from '../../domain/services/state/WarpState.ts';
import BoundaryTransitionRecord, { VerificationResult } from '../../domain/services/provenance/BTR.ts';
import { ProvenancePayload } from '../../domain/services/provenance/ProvenancePayload.ts';
type CreateBTROptions = {
    readonly key: string | Uint8Array;
    readonly timestamp: string;
    readonly crypto: CryptoPort;
    readonly btrCodec: BoundaryTransitionRecordCodecPort;
    readonly stateCodec?: CodecPort;
};
type VerifyBTROptions = {
    readonly verifyReplay?: boolean;
    readonly crypto?: CryptoPort;
    readonly btrCodec?: BoundaryTransitionRecordCodecPort;
    readonly stateCodec?: CodecPort;
};
type ReplayBTROptions = {
    readonly crypto?: CryptoPort;
    readonly stateCodec?: CodecPort;
};
type ReplayBTRResult = {
    readonly state: WarpState;
    readonly h_out: string;
};
type BTRVerificationResult = VerificationResult;
declare function createBTR(initialState: WarpState, payload: ProvenancePayload, opts: CreateBTROptions): Promise<BoundaryTransitionRecord>;
declare function verifyBTR(btr: BoundaryTransitionRecord, key: string | Uint8Array, opts?: VerifyBTROptions): Promise<VerificationResult>;
declare function replayBTR(btr: BoundaryTransitionRecord, deps?: ReplayBTROptions): Promise<ReplayBTRResult>;
export { createBTR, verifyBTR, replayBTR };
export type { CreateBTROptions, VerifyBTROptions, ReplayBTROptions, ReplayBTRResult, BTRVerificationResult, };
