///
import { FmtString } from './formatting';
import { Deunionize, UnionKeys } from './deunionize';
export declare const env: NodeJS.ProcessEnv;
export type Any = {} | undefined | null;
export type Expand = T extends object ? T extends infer O ? {
[K in keyof O]: O[K];
} : never : T;
export type MaybeArray = T | T[];
export type MaybePromise = T | Promise;
export type NonemptyReadonlyArray = readonly [T, ...T[]];
export type ExclusiveKeys = keyof Omit;
export declare function fmtCaption(extra?: Extra): Extra extends undefined ? undefined : Omit & {
caption?: string;
};
export type DistinctKeys = Exclude, keyof T>;
export type KeyedDistinct> = Record & Deunionize, T>;
export type Keyed> = Record & Deunionize, T>;
/** Construct a generic type guard */
export type Guard = (x: X) => x is Y;
/** Extract the guarded type from a type guard, defaults to never. */
export type Guarded = F extends (x: any) => x is infer T ? T : never;
export declare function zip(xs: Iterable, ys: Iterable): Iterable;
export declare function indexed(target: T, indexer: (index: number) => U): T;
//# sourceMappingURL=util.d.ts.map