/** @returns {TokenTypeEncoder[]} */
export function makeCborEncoders(): TokenTypeEncoder[];
/** @type {EncodeOptions} */
export const rfc8949EncodeOptions: EncodeOptions;
export type TokenEx = Token & {
    _keyBytes?: Uint8Array;
};
export type EncodeOptions = import("../interface.js").EncodeOptions;
export type OptionalTypeEncoder = import("../interface.js").OptionalTypeEncoder;
export type Reference = import("../interface.js").Reference;
export type StrictTypeEncoder = import("../interface.js").StrictTypeEncoder;
export type TokenTypeEncoder = import("../interface.js").TokenTypeEncoder;
export type TokenOrNestedTokens = import("../interface.js").TokenOrNestedTokens;
export type ByteWriter = import("../interface.js").ByteWriter;
/**
 * @param {any} obj
 * @param {EncodeOptions} [options]
 * @param {Reference} [refStack]
 * @returns {TokenOrNestedTokens}
 */
export function objectToTokens(obj: any, options?: EncodeOptions, refStack?: Reference): TokenOrNestedTokens;
/**
 * @param {any} data
 * @param {EncodeOptions} [options]
 * @returns {Uint8Array}
 */
export function encode(data: any, options?: EncodeOptions): Uint8Array;
/**
 * @param {any} data
 * @param {TokenTypeEncoder[]} encoders
 * @param {EncodeOptions} options
 * @param {Uint8Array} [destination]
 * @returns {Uint8Array}
 */
export function encodeCustom(data: any, encoders: TokenTypeEncoder[], options: EncodeOptions, destination?: Uint8Array): Uint8Array;
/**
 * @param {any} data
 * @param {Uint8Array} destination
 * @param {EncodeOptions} [options]
 * @returns {{ written: number }}
 */
export function encodeInto(data: any, destination: Uint8Array, options?: EncodeOptions): {
    written: number;
};
/** @implements {Reference} */
export class Ref implements Reference {
    /**
     * @param {Reference|undefined} stack
     * @param {object|any[]} obj
     * @returns {Reference}
     */
    static createCheck(stack: Reference | undefined, obj: object | any[]): Reference;
    /**
     * @param {object|any[]} obj
     * @param {Reference|undefined} parent
     */
    constructor(obj: object | any[], parent: Reference | undefined);
    obj: object | any[];
    parent: import("../interface.js").Reference | undefined;
    /**
     * @param {object|any[]} obj
     * @returns {boolean}
     */
    includes(obj: object | any[]): boolean;
}
import { Token } from './token.js';
//# sourceMappingURL=encode.d.ts.map