export declare type Complement<T, P extends Partial<T>> = Required<Omit<T, keyof P> & P>;
export declare type RecursivePartial<T> = {
    [K in keyof T]?: T[K] extends (infer U)[] ? RecursivePartial<U>[] : T[K] extends object ? RecursivePartial<T[K]> : T[K];
};
export declare type Override<T, U> = Omit<T, keyof U> & U;
export declare type ExtractTyped<T, K extends T> = Extract<T, K>;
export declare type ExcludeTyped<T, K extends T> = Exclude<T, K>;
export declare type OmitTyped<T, K extends keyof T> = Omit<T, K>;
