export interface ObjectMap<T> {
    [key: string]: T;
}
export declare type Diff<T extends string, U extends string> = ({
    [P in T]: P;
} & {
    [P in U]: never;
} & {
    [x: string]: never;
})[T];
export declare type Omit<T, K extends keyof T> = Pick<T, Diff<keyof T, K>>;
export declare function withDefaults<T extends ObjectMap<any>>(a: Partial<T> | null | undefined, defaults: T): T;
