Files
NapCatQQ/.pnpm-store/v3/files/e0/4502b4c414c7992774ef5c6f9f1fd28081003c99100c1cd54300058b191e552a9b26f8308374675c5d1e385e1207800983f47bd9a58e5e4e4065b2f5877c28
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

31 lines
1.5 KiB
Plaintext

import type { TSchema } from '../schema/index';
import type { Static, StaticDecode } from '../static/index';
import { TransformKind } from '../symbols/index';
export declare class TransformDecodeBuilder<T extends TSchema> {
private readonly schema;
constructor(schema: T);
Decode<U extends unknown, D extends TransformFunction<StaticDecode<T>, U>>(decode: D): TransformEncodeBuilder<T, D>;
}
export declare class TransformEncodeBuilder<T extends TSchema, D extends TransformFunction> {
private readonly schema;
private readonly decode;
constructor(schema: T, decode: D);
private EncodeTransform;
private EncodeSchema;
Encode<E extends TransformFunction<ReturnType<D>, StaticDecode<T>>>(encode: E): TTransform<T, ReturnType<D>>;
}
type TransformStatic<T extends TSchema, P extends unknown[] = []> = T extends TTransform<infer _, infer S> ? S : Static<T, P>;
export type TransformFunction<T = any, U = any> = (value: T) => U;
export interface TransformOptions<I extends TSchema = TSchema, O extends unknown = unknown> {
Decode: TransformFunction<StaticDecode<I>, O>;
Encode: TransformFunction<O, StaticDecode<I>>;
}
export interface TTransform<I extends TSchema = TSchema, O extends unknown = unknown> extends TSchema {
static: TransformStatic<I, this['params']>;
[TransformKind]: TransformOptions<I, O>;
[key: string]: any;
}
/** `[Json]` Creates a Transform type */
export declare function Transform<I extends TSchema>(schema: I): TransformDecodeBuilder<I>;
export {};