import type { AbstractState, Schema, Tests, Traverser } from '../types'; declare class Abstract> { protected state: State; constructor(state: State); protected _filterDefault(defaultable: false, quiet: true): boolean; protected _filterDefault(defaultable: boolean, quiet: false): FullType; protected _filterDefault(defaultable: boolean, quiet: boolean): FullType | boolean; protected _filter(value: Parameters[0], tests: Tests, defaultable: false, quiet: true): boolean; protected _filter(value: Parameters[0], tests: Tests, defaultable?: boolean, quiet?: false): FullType; protected _filter(value: Parameters[0], tests: Tests, defaultable?: boolean, quiet?: boolean): FullType | boolean; protected _test(value: BaseType, tests: Tests): value is FullType; filter(value: Parameters[0], defaultable: false, quiet: true): boolean; filter(value: Parameters[0], defaultable?: boolean, quiet?: false): FullType; filter(value: Parameters[0], defaultable?: boolean, quiet?: boolean): FullType | boolean; get(): State; get(state: K): State[K]; test(value: BaseType, tests: Tests): value is FullType; traverse(traverser: Traverser, parent?: Schema, key?: string | number): void; with(state: Partial): this; default(value: Exclude): this; description(value: string): this; title(value: string): this; } export default Abstract;