import { Foldable, Foldable1, Foldable2, Foldable3 } from 'fp-ts/lib/Foldable';
import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3 } from 'fp-ts/lib/HKT';
import { Magma } from 'fp-ts/lib/Magma';
import * as O from 'fp-ts/lib/Option';
import { Ord } from 'fp-ts/lib/Ord';
export * from 'fp-ts/lib/Record';
/**
* Retrieves the keys of an object while retaining keyof type information
*
* `T` suffix is "type" to differentiate this from the base Record keys function
*/
export declare const keysT: , K extends keyof A>(x: A) => K[];
export declare const values: , V extends A[keyof A]>(x: A) => V[];
export declare const entries: , K extends keyof A, V extends A[K]>(x: A) => [K, V][];
/**
* Retrieves the value of a given property key from an object (curried)
*/
export declare const prop: , K extends keyof A>(k: K) => (obj: A) => A[K];
/**
* Omits the key-value pairs from an object associated with the provided keys
*/
export declare const omit: , K extends keyof A>(rec: A, ks: K[]) => { [P in Exclude]: A[P]; };
/**
* A pipeable version of `omit`.
* Omits the key-value pairs from an object associated with the provided keys
*/
export declare const omitI: , K extends keyof A>(...ks: ReadonlyArray) => (rec: A) => {
[P in Exclude]: A[P];
};
/**
* Picks the key-value pairs from an object associated with the provided keys
*/
export declare const pick: , K extends keyof A>(rec: A, ks: K[]) => { [P in K]: A[P]; };
export declare const sortRecords: , K extends keyof S & string, A extends S[K]>(ord: Ord) => (data: T[]) => T[];
/**
* Type guard for `Record` from `object`
*/
export declare const isRecord: (x: unknown) => x is Record;
/**
* Check if a record is *not* empty
*/
export declare const isNotEmpty: (r: Record) => boolean;
export declare function fromFoldableFilterMap(M: Magma, F: Foldable3): (ta: Kind3, f: (a: A) => O.Option<[K, B]>) => Record;
export declare function fromFoldableFilterMap(M: Magma, F: Foldable2): (ta: Kind2, f: (a: A) => O.Option<[K, B]>) => Record;
export declare function fromFoldableFilterMap(M: Magma, F: Foldable1): (ta: Kind, f: (a: A) => O.Option<[K, B]>) => Record;
export declare function fromFoldableFilterMap(M: Magma, F: Foldable): (ta: HKT, f: (a: A) => O.Option<[K, B]>) => Record;