import { IReader } from './reader';
export type UnpicklingTypeOfSet = 'array' | 'Set';
export type UnpicklingTypeOfDictionary = 'object' | 'Map';
export interface NameResolver {
    resolve(module: string, name: string): (new (...args: any[]) => any) | ((...args: any[]) => any);
}
export interface PersistentResolver {
    resolve(pid: string): any;
}
export interface ExtensionResolver {
    resolve(extCode: number): any;
}
export interface ParserOptions {
    nameResolver: NameResolver;
    persistentResolver: PersistentResolver;
    extensionResolver: ExtensionResolver;
    unpicklingTypeOfSet: UnpicklingTypeOfSet;
    unpicklingTypeOfDictionary: UnpicklingTypeOfDictionary;
    buffers?: Iterator<any>;
}
export declare class Parser {
    private readonly _options;
    private readonly _nameResolver;
    private readonly _persistentResolver;
    private readonly _extensionResolver;
    private readonly _setProvider;
    private readonly _dictionaryProvider;
    private readonly _buffers?;
    constructor(options?: Partial<ParserOptions>);
    parse<T>(buffer: Uint8Array | Int8Array | Uint8ClampedArray): T;
    read<T>(reader: IReader): T;
}
