/// <reference types="node" />
import { BinaryStream } from './bs';
import { array } from './types/array';
import { buffer } from './types/buffer';
import { bool } from './types/bool';
import { reserved } from './types/reserved';
import { string } from './types/string';
import { when } from './types/when';
import { select } from './types/select';
import { encode } from './encode';
import { decode } from './decode';
import { encodingLength } from './encoding-length';
declare const types: {
    array: typeof array;
    bool: typeof bool;
    buffer: typeof buffer;
    reserved: typeof reserved;
    string: typeof string;
    when: typeof when;
    select: typeof select;
    doublebe: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    doublele: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    floatbe: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    floatle: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    int8: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    uint8: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    int16be: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    uint16be: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    int16le: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    uint16le: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    int32be: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    uint32be: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    int32le: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    uint32le: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    int24be: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    uint24be: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    int24le: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    uint24le: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    int40be: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    uint40be: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    int40le: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    uint40le: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    int48be: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    uint48be: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    int48le: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
    uint48le: {
        encodingLength: () => any;
        encode: (value: any, wstream: BinaryStream) => any;
        decode: (rstream: BinaryStream) => any[];
    };
};
export interface Schema {
    [name: string]: any;
}
export declare function createEncodeStream(schema?: Schema): BinaryStream;
export declare function createDecodeStream(bufOrSchema?: Buffer | Schema): BinaryStream;
export * from './errors';
export * from './binio';
export * from './transaction';
export * from './bl';
export * from './ll';
export * from './bs';
export declare const createEncode: typeof createEncodeStream;
export declare const createDecode: typeof createDecodeStream;
export { encode, decode, encodingLength, types, };
