import { Field } from './field-types/interface.js';
import { Encoding, Encoded } from '../../utils/encoder.js';
type Schemas = ReadonlyArray<{
    tag: {
        constValue: number;
    } & Field;
    version: {
        constValue: number;
        constValueOptional: boolean;
    } & Field;
}>;
export declare function getSchema(schemas: Schemas, Tag: {
    [key: number]: string;
}, tag: number, version: number | undefined): Array<[string, Field]>;
export declare function packRecord<E extends Encoding>(schemas: Schemas, Tag: {
    [key: number]: string;
}, params: {
    tag: number;
    version?: number;
    [k: string]: unknown;
}, extraParams: {
    [k: string]: unknown;
}, encoding: E): Encoded.Generic<E>;
export declare function unpackRecord(schemas: Schemas, Tag: {
    [key: number]: string;
}, encodedRecord: Encoded.Any, expectedTag: number | undefined, extraParams: {
    [k: string]: unknown;
}): unknown;
export {};
