import { UnivConv as UnivConv, Converter, ConvertOptions, Data, DataType, Options, ReturnData } from "./core";
export interface UnivConvInternal extends UnivConv {
    _empty<T extends Data>(input: T): T;
    _emptyOf<T extends DataType>(type: T): ReturnData<T>;
    _find<T extends Data>(input: T, options?: Partial<ConvertOptions>): Converter<T>;
    _of<T extends DataType>(type: T): Converter<ReturnData<T>>;
}
export declare function _(): UnivConvInternal;
export declare abstract class AbstractConverter<T extends Data> implements Converter<T> {
    static _UNIV_CONV: UnivConvInternal;
    abstract type: DataType;
    from(input: Data, options?: Partial<ConvertOptions>): Promise<T>;
    isEmpty(input: T, options?: Partial<Options>): boolean;
    merge(chunks: T[], options?: Partial<Options>): Promise<T>;
    size(input: T, options?: Partial<Options>): Promise<number>;
    toArrayBuffer(input: T, options: ConvertOptions): Promise<ArrayBuffer>;
    toBase64(input: T, options: ConvertOptions): Promise<string>;
    toText(input: T, options: ConvertOptions): Promise<string>;
    toUint8Array(input: T, options: ConvertOptions): Promise<Uint8Array>;
    abstract empty(): T;
    abstract is(input: Data, options?: Partial<ConvertOptions>): input is T;
    protected abstract _from(input: Data, options: ConvertOptions): Promise<T>;
    protected abstract _getStartEnd(input: T, options: ConvertOptions): Promise<{
        start: number;
        end: number | undefined;
    }>;
    protected abstract _isEmpty(input: T): boolean;
    protected abstract _merge(chunks: T[], options: Options): Promise<T>;
    protected abstract _size(input: T, options: Options): Promise<number>;
    protected abstract _toArrayBuffer(input: T, options: ConvertOptions): Promise<ArrayBuffer>;
    protected abstract _toBase64(input: T, options: ConvertOptions): Promise<string>;
    protected abstract _toText(input: T, options: ConvertOptions): Promise<string>;
    protected abstract _toUint8Array(input: T, options: ConvertOptions): Promise<Uint8Array>;
    private _initOptions;
}
//# sourceMappingURL=AbstractConverter.d.ts.map