import type { Frame } from "./frame.ts";
export interface NonTransReceiptCouple {
    prefix: string;
    sig: string;
}
export interface FirstSeenReplayCouple {
    fnu: string;
    dt: Date;
}
export interface TransIdxSigGroup {
    prefix: string;
    snu: string;
    digest: string;
    ControllerIdxSigs: string[];
}
export interface TransLastIdxSigGroup {
    prefix: string;
    ControllerIdxSigs: string[];
}
export interface SealSourceTriple {
    prefix: string;
    snu: string;
    digest: string;
}
export interface SealSourceCouple {
    snu: string;
    digest: string;
}
export interface PathedMaterialCouple {
    path: string;
    grouped: boolean;
    attachments: Attachments;
}
export interface PathedMaterialCoupleInit {
    path: string;
    /**
     * Determines whether to wrap this couple in an attachment group frame
     */
    grouped?: boolean;
    attachments: AttachmentsInit;
}
export interface AttachmentsInit {
    ControllerIdxSigs?: string[];
    WitnessIdxSigs?: string[];
    TransIdxSigGroups?: TransIdxSigGroup[];
    TransLastIdxSigGroups?: TransLastIdxSigGroup[];
    SealSourceTriples?: SealSourceTriple[];
    SealSourceCouples?: SealSourceCouple[];
    NonTransReceiptCouples?: NonTransReceiptCouple[];
    FirstSeenReplayCouples?: FirstSeenReplayCouple[];
    PathedMaterialCouples?: PathedMaterialCoupleInit[];
}
export declare class Attachments implements AttachmentsInit {
    readonly ControllerIdxSigs: string[];
    readonly WitnessIdxSigs: string[];
    readonly FirstSeenReplayCouples: FirstSeenReplayCouple[];
    readonly NonTransReceiptCouples: NonTransReceiptCouple[];
    readonly TransIdxSigGroups: TransIdxSigGroup[];
    readonly TransLastIdxSigGroups: TransLastIdxSigGroup[];
    readonly PathedMaterialCouples: PathedMaterialCouple[];
    readonly SealSourceTriples: SealSourceTriple[];
    readonly SealSourceCouples: SealSourceCouple[];
    constructor(init?: AttachmentsInit);
    static parse(input: Uint8Array): Attachments | null;
    frames(): Frame[];
    binary(): Uint8Array;
    text(): string;
}
