import { z } from 'zod'; import { type ValueSubscription } from '../lib/value-subscription'; import { type ParseResult } from '../lib/zod'; import { type Data } from '../common/types'; import { type CopyContext, type MergeContext } from '../context'; import { type IntrospectionTarget } from '../introspection'; import { type ResourceResolver } from '../resources/resolver'; import { type Stylesheet } from '../stylesheet'; import { ControlInstance, type ControlInstanceArgs } from './instance'; import { ControlDefinitionVisitor } from './visitor'; export type SchemaType = z.ZodType; export type SchemaTypeAny = SchemaType | z.ZodBranded, any>; export type AnyControlInstance = ControlInstance; export type Resolvable = ValueSubscription & { triggerResolve(currentValue?: T): Promise; }; export declare abstract class ControlDefinition { readonly config: Config; __associatedTypes(_: { ControlType: ControlType; Config: Config; DataType: DataType; ValueType: ValueType; ResolvedValueType: ResolvedValueType; InstanceType: InstanceType; }): void; constructor(config: Config); abstract get controlType(): ControlType; abstract get schema(): { definition: SchemaType; type: SchemaType; data: SchemaType; value: SchemaType; resolvedValue: SchemaType; }; abstract safeParse(data: unknown | undefined): ParseResult; abstract fromData(data: DataType | undefined): ValueType | undefined; abstract toData(value: ValueType): DataType; abstract copyData(data: DataType | undefined, context: CopyContext): DataType | undefined; mergeData(base: DataType, override: DataType | undefined, _context: MergeContext): DataType; getTranslatableData(_data: DataType | undefined): Data; abstract resolveValue(data: DataType | undefined, resolver: ResourceResolver, stylesheet: Stylesheet, control?: InstanceType): Resolvable; abstract createInstance(args: ControlInstanceArgs): InstanceType; abstract accept(visitor: ControlDefinitionVisitor, ...args: unknown[]): R; introspect(data: DataType | undefined, target: IntrospectionTarget): R[]; } //# sourceMappingURL=definition.d.ts.map