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: <U>(
            guard: TypeGuard<U>,
        ) =>
            | V3.AnyStruct
            | V3.GenericStruct<U, true>
            | {
                context?: Record<string, any> | null;
                kind?: string;
                optional: boolean;
                schema: TypeGuard<U>;
                type: "custom";
            };
        number: NumberSchema;
        object: ObjectSchema;
        optionalize: {
            <Factory extends TypeGuardFactory>(
                factory: Factory,
            ): OptionalizedTypeGuardFactory<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>;
            <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>>(
                struct: TStruct,
                guard: TypeGuard<FromRecordStruct<TStruct>>,
            ): TypeGuard<FromRecordStruct<TStruct>>;
            <TStruct extends V3.ClassInstanceStruct<any, string>>(
                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[]>>(
                struct: TStruct,
                guard: TypeGuard<FromTupleStruct<TStruct>>,
            ): TypeGuard<FromTupleStruct<TStruct>>;
            <TStruct extends V3.UnionStruct<any[]>>(
                struct: TStruct,
                guard: TypeGuard<FromUnionStruct<TStruct>>,
            ): TypeGuard<FromUnionStruct<TStruct>>;
            <TStruct extends V3.IntersectionStruct<any[]>>(
                struct: TStruct,
                guard: TypeGuard<FromIntersectionStruct<TStruct>>,
            ): TypeGuard<FromIntersectionStruct<TStruct>>;
        };
        string: StringSchema;
        symbol: SymbolSchema;
        tuple: TupleSchema;
        useSchema: DelegateSchema;
    } = ...

    Type Declaration