import { ClassType } from "./types";
export interface UnionTypeConfig<ObjectTypes extends ClassType[]> {
    name: string;
    description?: string;
    types: ObjectTypes;
}
export declare function createUnionType<T1, T2>(config: UnionTypeConfig<[ClassType<T1>, ClassType<T2>]>): T1 | T2;
export declare function createUnionType<T1, T2, T3>(config: UnionTypeConfig<[ClassType<T1>, ClassType<T2>, ClassType<T3>]>): T1 | T2 | T3;
export declare function createUnionType<T1, T2, T3, T4>(config: UnionTypeConfig<[ClassType<T1>, ClassType<T2>, ClassType<T3>, ClassType<T4>]>): T1 | T2 | T3 | T4;
export declare function createUnionType<T1, T2, T3, T4, T5>(config: UnionTypeConfig<[ClassType<T1>, ClassType<T2>, ClassType<T3>, ClassType<T4>, ClassType<T5>]>): T1 | T2 | T3 | T4 | T5;
export declare function createUnionType<T1, T2, T3, T4, T5, T6>(config: UnionTypeConfig<[ClassType<T1>, ClassType<T2>, ClassType<T3>, ClassType<T4>, ClassType<T5>, ClassType<T6>]>): T1 | T2 | T3 | T4 | T5 | T6;
export declare function createUnionType<T1, T2, T3, T4, T5, T6, T7>(config: UnionTypeConfig<[ClassType<T1>, ClassType<T2>, ClassType<T3>, ClassType<T4>, ClassType<T5>, ClassType<T6>, ClassType<T7>]>): T1 | T2 | T3 | T4 | T5 | T6 | T7;
export declare function createUnionType<T1, T2, T3, T4, T5, T6, T7, T8>(config: UnionTypeConfig<[ClassType<T1>, ClassType<T2>, ClassType<T3>, ClassType<T4>, ClassType<T5>, ClassType<T6>, ClassType<T7>, ClassType<T8>]>): T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8;
export declare function createUnionType<T1, T2, T3, T4, T5, T6, T7, T8, T9>(config: UnionTypeConfig<[ClassType<T1>, ClassType<T2>, ClassType<T3>, ClassType<T4>, ClassType<T5>, ClassType<T6>, ClassType<T7>, ClassType<T8>, ClassType<T9>]>): T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9;
export declare function createUnionType<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(config: UnionTypeConfig<[ClassType<T1>, ClassType<T2>, ClassType<T3>, ClassType<T4>, ClassType<T5>, ClassType<T6>, ClassType<T7>, ClassType<T8>, ClassType<T9>, ClassType<T10>]>): T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9 | T10;
