1234567891011121314151617181920212223242526272829303132 |
- import { DefaultResult, DeprecatedResult, ExpectedResult, ForwardResult, OptionValue, RedirectResult, Utils, ValidateResult } from './types';
- export interface SchemaParameters<$Value> extends SchemaHandlers<$Value> {
- name: string;
- }
- export interface SchemaHandlers<$Value> {
- default?: DefaultResult<$Value> | ((schema: Schema<$Value>, utils: Utils) => DefaultResult<$Value>);
- expected?: ExpectedResult | ((schema: Schema<$Value>, utils: Utils) => ExpectedResult);
- validate?: ValidateResult | ((value: unknown, schema: Schema<$Value>, utils: Utils) => ValidateResult);
- deprecated?: DeprecatedResult<$Value> | ((value: $Value, schema: Schema<$Value>, utils: Utils) => DeprecatedResult<$Value>);
- forward?: ForwardResult<$Value> | ((value: $Value, schema: Schema<$Value>, utils: Utils) => ForwardResult<$Value>);
- redirect?: RedirectResult<$Value> | ((value: $Value, schema: Schema<$Value>, utils: Utils) => RedirectResult<$Value>);
- overlap?: (currentValue: $Value, newValue: $Value, schema: Schema<$Value>, utils: Utils) => $Value;
- preprocess?: (value: unknown, schema: Schema<$Value>, utils: Utils) => unknown;
- postprocess?: (value: $Value, schema: Schema<$Value>, utils: Utils) => unknown;
- }
- export declare function createSchema<$Schema extends Schema<any>, $Parameters extends $Schema['_parametersType']>(SchemaConstructor: new (parameters: $Parameters) => $Schema, parameters: $Parameters): $Schema;
- export declare abstract class Schema<$Value extends OptionValue, $Parameters extends SchemaHandlers<$Value> = SchemaHandlers<$Value>> {
- static create<$Schema extends Schema<any>>(parameters: $Schema['_parametersType']): $Schema;
- name: string;
- _valueType: $Value;
- _parametersType: $Parameters;
- constructor(parameters: SchemaParameters<$Value>);
- default(_utils: Utils): DefaultResult<$Value>;
- expected(_utils: Utils): ExpectedResult;
- validate(_value: unknown, _utils: Utils): ValidateResult;
- deprecated(_value: $Value, _utils: Utils): DeprecatedResult<$Value>;
- forward(_value: $Value, _utils: Utils): ForwardResult<$Value>;
- redirect(_value: $Value, _utils: Utils): RedirectResult<$Value>;
- overlap(currentValue: $Value, _newValue: $Value, _utils: Utils): $Value;
- preprocess(value: unknown, _utils: Utils): unknown;
- postprocess(value: $Value, _utils: Utils): unknown;
- }
|