export type Flatten<Type> = Type extends Array<infer Item> ? Item : Type;
export type Unflatten<Type> = Type extends Array<infer Item> ? Item[] : Type[];
export type Boolean<T> = T extends boolean ? T : never;
export type NonBoolean<T> = T extends boolean ? never : T;
export type Writeable<T> = {
    -readonly [P in keyof T]: T[P];
};
export type Never<T> = {
    [P in keyof T]: never;
};
export type HasUnknownKeys<T> = string extends keyof T ? true : number extends keyof T ? true : false;
export type Merge<A, B> = {
    [K in keyof A | keyof B]: (K extends keyof A ? A[K] : never) | (K extends keyof B ? B[K] : never);
};
export declare function toBooleanValues<K extends string>(strings?: readonly K[]): Record<K, true>;
