import Converter from './models/Converter.js';
/**
 * @namespace presets
 */
/**
 * @memberof presets
 * @example
 * boolean.convert('abc'); // true
 * boolean.convert(Symbol.for('')); // false
 * boolean.convert([]); // false
 * boolean.convert([0]); // false
 * boolean.convert([false, true]); // false
 * boolean.convert([123]); // true
 */
export declare const boolean: Converter<boolean>;
/**
 * @memberof presets
 * @example
 * number.convert(Infinity); // Infinity
 * number.convert('42'); // 42
 * number.convert('abc'); // NaN
 * number.convert(Symbol.for('42')); // 42
 * number.convert(new Date('1970-01-01T00:00:00.042Z')); // 42
 * number.convert(['42']); // 42
 * number.convert([ [ [ 42 ] ] ]); // 42
 * number.convert(new Date('1970-01-01T00:00:00.999Z')); // 999
 */
export declare const number: Converter<number>;
/**
 * @memberof presets
 * @name unsigned
 * @description cast to ubyte, ushort (2 bytes), uint (4 bytes) or ulong (8 bytes)
 * @example
 * ubyte.convert(-7); // 0
 * ubyte.convert('a'); // 0
 * ubyte.convert(Infinity); // 255
 * ubyte.convert(-Infinity); // 0
 * ushort.convert(Infinity); // 65535
 * ushort.convert(-Infinity); // 0
 * uint.convert(Infinity); // 4294967295
 * uint.convert(-Infinity); // 0
 * ulong.convert(Infinity); // MAX_SAFE_INTEGER
 * ulong.convert(-Infinity); // 0
 */
export declare const byte: Converter<number>, short: Converter<number>, int: Converter<number>, long: Converter<number>, ubyte: Converter<number>, ushort: Converter<number>, uint: Converter<number>, ulong: Converter<number>;
/**
 * @memberof presets
 * @example
 * double.convert('42.5'); // 42.5
 * double.convert(Infinity); // Number.MAX_VALUE
 * double.convert(NaN); // 0
 */
export declare const double: Converter<number>;
/**
 * @memberof presets
 * @example
 * bigint.convert(42.5); // 42n
 * bigint.convert('42'); // 42n
 * bigint.convert('42.5'); // 0n
 * bigint.convert(Symbol.for('42')); // 42n
 * bigint.convert(new Date('1970-01-01T00:00:00.999Z')); // 999n
 */
export declare const bigint: Converter<bigint>;
/**
 * @memberof presets
 * @example
 * string.convert(); // ''
 * string.convert(null); // ''
 * string.convert(false); // ''
 * string.convert(true); // ' '
 * string.convert(42.5); // '42.5'
 * string.convert([1, 2, 3]); // '1'
 * string.convert(Symbol.for('42')); // '42'
 * string.convert(new Date('1970-01-01T00:00:00.999Z')); // '1970-01-01T00:00:00.999Z'
 */
export declare const string: Converter<string>;
/**
 * @memberof presets
 * @example
 * symbol.convert(false); // Symbol('')
 * symbol.convert(42.5); // Symbol('42.5')
 * symbol.convert('42.5'); // Symbol('42.5')
 * symbol.convert([1.5, 2, 3]); // Symbol('1.5')
 * symbol.convert(new Date('1970-01-01T00:00:00.999Z')); // Symbol('1970-01-01T00:00:00.999Z')
 */
export declare const symbol: Converter<symbol>;
/**
 * @memberof presets
 * @example
 * array.convert(); // []
 * array.convert(null); // []
 * array.convert(false); // [false]
 * array.convert(123); // [123]
 * array.convert('1,2,3'); // ['1,2,3']
 * array.convert(new Set([1, 2, 3])); // [1, 2, 3]
 * array.convert(new Map([[1, 2], [3, 4], [5, 6]])); // [[1, 2], [3, 4], [5, 6]]
 */
export declare const array: Converter<any[]>;
/**
 * @memberof presets
 * @example
 * fn.convert((a, b) => a + b); // (a, b) => a + b
 * fn.convert(123); // () => 123
 */
export declare const fn: Converter<Function>;
/**
 * @memberof presets
 * @example
 * date.convert(111); // Date('1970-01-01T00:00:00.111Z')
 * date.convert([222, 333]); // Date('1970-01-01T00:00:00.222Z')
 * date.convert('abc'); // Date(NaN)
 */
export declare const date: Converter<Date>;
/**
 * @memberof presets
 * @example
 * object.convert(undefined); // {}
 * object.convert(null); // {}
 * object.convert(false); // Boolean { false }
 * object.convert(1); // Number { 1 }
 * object.convert('2'); // String { 2 }
 * object.convert([1, '2', 3n]); // [1, '2', 3n]
 */
export declare const object: Converter<object>;
/**
 * @memberof presets
 * @example
 * map.convert([ [true, 1], 2, '3']); // Map { [true, 1] }
 */
export declare const map: Converter<Map<unknown, unknown>>;
/**
 * @memberof presets
 * @example
 * weakmap.convert([ [Boolean, 'bool'], [Number, 'num'], [String, 'str'], [true, 1], 2, '3']); // WeakMap { [Boolean, 'bool'], [Number, 'num'], [String, 'str'] }
 */
export declare const weakmap: Converter<WeakMap<any, unknown>>;
/**
 * @memberof presets
 * @example
 * set.convert([1, '2', 3]); // Set {1, '2', 3}
 */
export declare const set: Converter<Set<unknown>>;
/**
 * @memberof presets
 * @example
 * weakset.convert([Boolean, Number, String, true, 2, '3']); // WeakSet { Boolean, Number, String }
 */
export declare const weakset: Converter<WeakSet<any>>;
/**
 * @memberof presets
 * @example
 * promise.convert(Promise.resolve(1)); // Promise { 1 }
 * promise.convert(42); // Promise { 42 }
 */
export declare const promise: Converter<Promise<any>>;
//# sourceMappingURL=presets.d.ts.map