import { type Frame, type FrameInit, type FrameSize, type ReadResult } from "./frame.ts";
export interface IndexerInit {
    code: string;
    raw: Uint8Array;
    index: number;
    ondex?: number;
}
type IndexCodeTableEntry = FrameSize & {
    os: number;
};
export declare class Indexer implements IndexerInit, Frame {
    readonly code: string;
    readonly index: number;
    readonly ondex?: number;
    readonly raw: Uint8Array;
    constructor(init: IndexerInit);
    get quadlets(): number;
    get soft(): number;
    get size(): IndexCodeTableEntry;
    text(): string;
    binary(): Uint8Array;
    static readonly Code: {
        Ed25519_Sig: string;
        Ed25519_Crt_Sig: string;
        ECDSA_256k1_Sig: string;
        ECDSA_256k1_Crt_Sig: string;
        ECDSA_256r1_Sig: string;
        ECDSA_256r1_Crt_Sig: string;
        Ed448_Sig: string;
        Ed448_Crt_Sig: string;
        Ed25519_Big_Sig: string;
        Ed25519_Big_Crt_Sig: string;
        ECDSA_256k1_Big_Sig: string;
        ECDSA_256k1_Big_Crt_Sig: string;
        ECDSA_256r1_Big_Sig: string;
        ECDSA_256r1_Big_Crt_Sig: string;
        Ed448_Big_Sig: string;
        Ed448_Big_Crt_Sig: string;
    };
    static peek(input: Uint8Array): ReadResult<Indexer>;
    static parse(input: string | Uint8Array): Indexer;
    /**
     * Create a new Indexer frame.
     *
     * Note: It is recommended to use the helper methods in `Indexer.crypto` instead to ensure
     * the correct code is used for the signature type.
     *
     * @param code The Indexer code, see {@link Indexer.Code}
     * @param raw The raw signature bytes
     * @param index The main index of the signature
     * @param ondex The optional secondary index of the signature
     */
    static from(code: string, raw: Uint8Array, index: number, ondex?: number): Indexer;
    /**
     * Convert a Matter frame into an Indexer frame by providing the index and optional ondex.
     *
     * @param matter The Matter frame to convert
     * @param index The main index of the signature
     * @param ondex The optional secondary index of the signature
     * @returns The created Indexer frame
     */
    static convert(matter: Pick<FrameInit, "code" | "raw">, index: number, ondex?: number): Indexer;
    static readonly crypto: {
        ed25519_sig(raw: Uint8Array, index: number, ondex?: number): Indexer;
        ed448_sig(raw: Uint8Array, index: number, ondex?: number): Indexer;
        ecdsa_256k1_sig(raw: Uint8Array, index: number, ondex?: number): Indexer;
        ecdsa_256r1_sig(raw: Uint8Array, index: number, ondex?: number): Indexer;
    };
}
export {};
