import { SchemaOptions, Static, StringOptions, TLiteral, TObject, TSchema, TUnion } from '@sinclair/typebox/type';
import { AllKeys, Obj, TPartialSome } from './types.js';
export declare const capitalize: <S extends string>(str: S) => Capitalize<S>;
export declare const isObj: (obj: unknown) => obj is Obj;
export type TUnionOfString<T extends string[], Acc extends TSchema[] = []> = T extends [infer L extends string, ...infer R extends string[]] ? TUnionOfString<R, [...Acc, TLiteral<L>]> : Acc;
export declare const LiteralUnion: <const T extends string[]>(values: [...T], options?: SchemaOptions) => TUnion<TUnionOfString<T>>;
export declare const PartialSome: <T extends TObject, K extends AllKeys<Static<T>>[]>(schema: T, keys: readonly [...K], options?: SchemaOptions) => TPartialSome<T, K>;
export declare const DistOmit: <T extends TSchema, K extends AllKeys<Static<T>>[]>(schema: T, keys: readonly [...K], options?: SchemaOptions) => import("@sinclair/typebox/type").TOmit<T, K, T extends import("@sinclair/typebox/type").TRef<string> ? true : false, K extends import("@sinclair/typebox/type").TRef<string> ? true : false>;
export declare const DistPick: <T extends TSchema, K extends AllKeys<Static<T>>[]>(schema: T, keys: readonly [...K], options?: SchemaOptions) => import("@sinclair/typebox/type").TPick<T, K, T extends import("@sinclair/typebox/type").TRef<string> ? true : false, K extends import("@sinclair/typebox/type").TRef<string> ? true : false>;
export declare const MaybeArray: <T extends TSchema>(schema: T, options?: SchemaOptions) => TUnion<[T, import("@sinclair/typebox/type").TArray<T>]>;
export declare const Nullable: <T extends TSchema>(schema: T, options?: SchemaOptions) => import("@sinclair/typebox/type").TOptional<TUnion<[T, import("@sinclair/typebox/type").TNull]>>;
export declare function UnionPartialSome<U1 extends TObject, K extends AllKeys<Static<U1>>[]>(union: TUnion<[U1]>, keys: readonly [...K]): TUnion<[TPartialSome<U1, K>]>;
export declare function UnionPartialSome<U1 extends TObject, U2 extends TObject, K extends AllKeys<Static<U1 | U2>>[]>(union: TUnion<[U1, U2]>, keys: readonly [...K]): TUnion<[TPartialSome<U1, K>, TPartialSome<U2, K>]>;
export declare function UnionPartialSome<U1 extends TObject, U2 extends TObject, U3 extends TObject, K extends AllKeys<Static<U1 | U2 | U3>>[]>(union: TUnion<[U1, U2, U3]>, keys: readonly [...K]): TUnion<[TPartialSome<U1, K>, TPartialSome<U2, K>, TPartialSome<U3, K>]>;
export declare function UnionPartialSome<U1 extends TObject, U2 extends TObject, U3 extends TObject, U4 extends TObject, K extends AllKeys<Static<U1 | U2 | U3 | U4>>[]>(union: TUnion<[U1, U2, U3, U4]>, keys: readonly [...K]): TUnion<[TPartialSome<U1, K>, TPartialSome<U2, K>, TPartialSome<U3, K>, TPartialSome<U4, K>]>;
export declare function UnionPartialSome<U1 extends TObject, U2 extends TObject, U3 extends TObject, U4 extends TObject, K extends AllKeys<Static<U1 | U2 | U3 | U4>>[]>(union: TUnion<[U1, U2, U3, U4]>, keys: readonly [...K]): TUnion<[TPartialSome<U1, K>, TPartialSome<U2, K>, TPartialSome<U3, K>, TPartialSome<U4, K>]>;
export declare function UnionPartialSome<U1 extends TObject, U2 extends TObject, U3 extends TObject, U4 extends TObject, U5 extends TObject, K extends AllKeys<Static<U1 | U2 | U3 | U4 | U5>>[]>(union: TUnion<[U1, U2, U3, U4, U5]>, keys: readonly [...K]): TUnion<[TPartialSome<U1, K>, TPartialSome<U2, K>, TPartialSome<U3, K>, TPartialSome<U4, K>, TPartialSome<U5, K>]>;
export declare function UnionPartialSome<U1 extends TObject, U2 extends TObject, U3 extends TObject, U4 extends TObject, U5 extends TObject, U6 extends TObject, K extends AllKeys<Static<U1 | U2 | U3 | U4 | U5 | U6>>[]>(union: TUnion<[U1, U2, U3, U4, U5, U6]>, keys: readonly [...K]): TUnion<[TPartialSome<U1, K>, TPartialSome<U2, K>, TPartialSome<U3, K>, TPartialSome<U4, K>, TPartialSome<U5, K>, TPartialSome<U6, K>]>;
export declare function UnionPartialSome<U1 extends TObject, U2 extends TObject, U3 extends TObject, U4 extends TObject, U5 extends TObject, U6 extends TObject, U7 extends TObject, K extends AllKeys<Static<U1 | U2 | U3 | U4 | U5 | U6 | U7>>[]>(union: TUnion<[U1, U2, U3, U4, U5, U6, U7]>, keys: readonly [...K]): TUnion<[
    TPartialSome<U1, K>,
    TPartialSome<U2, K>,
    TPartialSome<U3, K>,
    TPartialSome<U4, K>,
    TPartialSome<U5, K>,
    TPartialSome<U6, K>,
    TPartialSome<U7, K>
]>;
export declare function UnionPartialSome<U1 extends TObject, U2 extends TObject, U3 extends TObject, U4 extends TObject, U5 extends TObject, U6 extends TObject, U7 extends TObject, U8 extends TObject, K extends AllKeys<Static<U1 | U2 | U3 | U4 | U5 | U6 | U7 | U8>>[]>(union: TUnion<[U1, U2, U3, U4, U5, U6, U7, U8]>, keys: readonly [...K]): TUnion<[
    TPartialSome<U1, K>,
    TPartialSome<U2, K>,
    TPartialSome<U3, K>,
    TPartialSome<U4, K>,
    TPartialSome<U5, K>,
    TPartialSome<U6, K>,
    TPartialSome<U7, K>,
    TPartialSome<U8, K>
]>;
export declare const IsoDate: (options?: StringOptions) => import("@sinclair/typebox/type").TTransform<import("@sinclair/typebox/type").TString, Date>;
