import type { Node } from './Node.ts'; import type { GetSet } from './types.ts'; type EnforceString = T extends string ? T : never; type Constructor = abstract new (...args: any) => any; type Attr = EnforceString>; type AfterFunc = (this: InstanceType) => void; type ExtractGetSet = T extends GetSet ? U : never; type Value> = ExtractGetSet[U]>; type ValidatorFunc = (val: ExtractGetSet, attr: string) => T; type ExtractComponents> = Value extends Record ? EnforceString>[] : never; export declare const Factory: { addGetterSetter>(constructor: T, attr: U, def?: Value, validator?: ValidatorFunc>, after?: AfterFunc): void; addGetter>(constructor: T, attr: U, def?: Value): void; addSetter>(constructor: T, attr: U, validator?: ValidatorFunc>, after?: AfterFunc): void; overWriteSetter>(constructor: T, attr: U, validator?: ValidatorFunc>, after?: AfterFunc): void; addComponentsGetterSetter>(constructor: T, attr: U, components: ExtractComponents, validator?: ValidatorFunc>, after?: AfterFunc): void; addOverloadedGetterSetter>(constructor: T, attr: U): void; addDeprecatedGetterSetter>(constructor: T, attr: U, def: Value, validator: ValidatorFunc>): void; backCompat(constructor: T, methods: Record): void; afterSetFilter(this: Node): void; }; export {};