Type Utils
    Preparing search index...

    Variable SchemaConst

    Schema: {
        and: IntersectionSchema;
        any: AnySchema;
        array: ArraySchema;
        asEnum: EnumSchema;
        asNull: NullSchema;
        asUndefined: UndefinedSchema;
        bigint: BigIntSchema;
        boolean: BooleanSchema;
        getStructMetadata: {
            <T>(
                guard: TypeGuard<T>,
            ):
                | V3.AnyStruct<Custom<any[], string, any>>
                | V3.GenericStruct<T, true, Custom<any[], string, any>>
                | {
                    context?: Record<string, any> | null;
                    kind?: string;
                    optional: boolean;
                    rules: {
                        args: any[];
                        handler: CustomHandler<any[], T>;
                        rule: string;
                        type: "custom";
                    }[];
                    schema: TypeGuard<T>;
                    type: "custom";
                };
            (guard: unknown): V3.AnyStruct;
            (
                guard: TypeGuard<any>,
            ):
                | V3.StructType<Custom<any[], string, any>>
                | {
                    context?: Record<string, any> | null;
                    kind?: string;
                    optional: boolean;
                    rules: {
                        args: any[];
                        handler: CustomHandler<any[], unknown>;
                        rule: string;
                        type: "custom";
                    }[];
                    schema: TypeGuard<unknown>;
                    type: "custom";
                };
        };
        number: NumberSchema;
        object: ObjectSchema;
        optionalize: {
            <Factory extends TypeGuardFactory>(
                factory: Factory,
            ): OptionalizedTypeGuardFactory<
                TypeGuardFactoryType<Factory>,
                TypeGuardFactoryParameters<Factory>,
            >;
            <Override, Factory extends TypeGuardFactory>(
                factory: Factory,
            ): Factory & { optional: Override };
        };
        optionalizeOverloadFactory: <Factory extends TypeGuardFactory>(
            factory: Factory,
        ) => { optionalize<Override>(): Factory & { optional: Override } };
        or: UnionSchema;
        primitive: PrimitiveSchema;
        record: RecordSchema;
        setStructMetadata: {
            <TSource>(
                struct: V3.GenericStruct<TSource, false>,
                guard: TypeGuard<TSource>,
            ): TypeGuard<TSource>;
            <TSource extends PrimitiveType>(
                struct: V3.EnumStruct<TSource>,
                guard: TypeGuard<TSource>,
            ): TypeGuard<TSource>;
            (
                struct: V3.PrimitiveStruct,
                guard: TypeGuard<PrimitiveType>,
            ): TypeGuard<PrimitiveType>;
            (struct: V3.NullStruct, guard: TypeGuard<null>): TypeGuard<null>;
            (
                struct: V3.UndefinedStruct,
                guard: TypeGuard<undefined>,
            ): TypeGuard<undefined>;
            (struct: V3.StringStruct, guard: TypeGuard<string>): TypeGuard<string>;
            (struct: V3.NumberStruct, guard: TypeGuard<number>): TypeGuard<number>;
            (struct: V3.BigIntStruct, guard: TypeGuard<bigint>): TypeGuard<bigint>;
            (struct: V3.BooleanStruct, guard: TypeGuard<boolean>): TypeGuard<boolean>;
            (struct: V3.SymbolStruct, guard: TypeGuard<symbol>): TypeGuard<symbol>;
            <TSource extends {}>(
                struct: V3.ObjectStruct<TSource>,
                guard: TypeGuard<TSource>,
            ): TypeGuard<TSource>;
            <TSource>(
                struct: V3.ArrayStruct<TypeFromArray<TSource>>,
                guard: TypeGuard<TSource>,
            ): TypeGuard<TSource>;
            <
                TStruct extends
                    V3.RecordStruct<any, any, Custom<any[], string, Record<any, any>>>,
            >(
                struct: TStruct,
                guard: TypeGuard<FromRecordStruct<TStruct>>,
            ): TypeGuard<FromRecordStruct<TStruct>>;
            <
                TStruct extends
                    V3.ClassInstanceStruct<any, string, Custom<any[], string, any>>,
            >(
                struct: TStruct,
                guard: TypeGuard<FromClassInstanceStruct<TStruct>>,
            ): TypeGuard<FromClassInstanceStruct<TStruct>>;
            <TKey extends string | number | symbol, TValue>(
                struct: V3.RecordStruct<TKey, TValue>,
                guard: TypeGuard<Record<TKey, TValue>>,
            ): TypeGuard<Record<TKey, TValue>>;
            <TStruct extends V3.TupleStruct<any[], Custom<any[], string, any[]>>>(
                struct: TStruct,
                guard: TypeGuard<FromTupleStruct<TStruct>>,
            ): TypeGuard<FromTupleStruct<TStruct>>;
            <TStruct extends V3.UnionStruct<any[], Custom<any[], string, any>>>(
                struct: TStruct,
                guard: TypeGuard<FromUnionStruct<TStruct>>,
            ): TypeGuard<FromUnionStruct<TStruct>>;
            <TStruct extends V3.IntersectionStruct<any[], Custom<any[], string, any>>>(
                struct: TStruct,
                guard: TypeGuard<FromIntersectionStruct<TStruct>>,
            ): TypeGuard<FromIntersectionStruct<TStruct>>;
        };
        string: StringSchema;
        symbol: SymbolSchema;
        tuple: TupleSchema;
        useSchema: DelegateSchema;
    } = ...

    Type Declaration