export interface ReadResult<T> {
    /**
     * The frame, or null if there was not enough data in the input
     */
    frame?: T;
    /**
     * The number of bytes consumed from the input
     */
    n: number;
}
export interface FrameSize {
    hs: number;
    fs: number;
    ss: number;
    ls?: number;
    xs?: number;
}
export interface FrameInit {
    code: string;
    size: FrameSize;
    raw?: Uint8Array;
    soft?: number;
}
export interface Frame extends FrameInit {
    readonly quadlets: number;
    text(): string;
    binary(): Uint8Array;
}
/**
 * Resolves the quadlet/triplet count of a frame
 */
export declare function resolveQuadletCount(frame: FrameInit): number;
export declare function encodeText(frame: FrameInit): string;
export declare function encodeBinary(frame: FrameInit): Uint8Array;
export declare function peekText(input: Uint8Array | string, entry: FrameSize): ReadResult<FrameInit>;
export declare function decodeText(input: string | Uint8Array, entry: FrameSize): FrameInit;
