import { z } from 'zod'; import { type ParseResult } from '../../lib/zod'; import { ControlDataTypeKey, type Data } from '../../common'; import { type CopyContext } from '../../context'; import { type IntrospectionTarget } from '../../introspection'; import { type ResourceResolver } from '../../resources/resolver'; import { type DeserializedRecord } from '../../serialization'; import { type Stylesheet } from '../../stylesheet'; import { type DataType as DataType_, type ResolvedValueType as ResolvedValueType_, type ValueType as ValueType_ } from '../associated-types'; import { ControlDefinition, type Resolvable, type SchemaType } from '../definition'; import { type ControlInstanceArgs } from '../instance'; import { ShapeDefinition } from '../shape/v1'; import { ShapeV2Definition } from '../shape/v2'; import { ControlDefinitionVisitor } from '../visitor'; import { GroupControl } from './group-control'; type ItemDefinition = ControlDefinition; type KeyDefinitions = Record; type Config = { readonly label?: string; readonly description?: string; readonly preferredLayout?: typeof Definition.Layout.Inline | typeof Definition.Layout.Popover; readonly props: Defs; }; type ShapeData = DataType_>; type PropsData = { [K in keyof C['props']]: DataType_; }; type VersionedData = { [ControlDataTypeKey]: typeof Definition.v1DataType | typeof ShapeV2Definition.v1DataType; value: PropsData; }; type DataType = ShapeData | VersionedData; type ValueType = { [K in keyof C['props']]: ValueType_; }; type ResolvedValueType = { [K in keyof C['props']]: ResolvedValueType_; }; type InstanceType = GroupControl>; declare class Definition extends ControlDefinition, ValueType, ResolvedValueType, InstanceType> { readonly dataType: typeof Definition.v1DataType | typeof ShapeV2Definition.v1DataType; static readonly type: "makeswift::controls::group"; static readonly v1DataType: "group::v1"; static readonly Layout: { readonly Inline: "makeswift::controls::group::layout::inline"; readonly Popover: "makeswift::controls::group::layout::popover"; }; static deserialize(data: DeserializedRecord, deserializeCallback: (r: DeserializedRecord) => ControlDefinition): GroupDefinition; constructor(config: C, dataType: typeof Definition.v1DataType | typeof ShapeV2Definition.v1DataType); private get dataSignature(); get propDefs(): KeyDefinitions; get controlType(): "makeswift::controls::group"; get schema(): { type: z.ZodLiteral<"makeswift::controls::group">; data: z.ZodUnion<[SchemaType>, SchemaType>]>; value: SchemaType>; resolvedValue: SchemaType>; definition: z.ZodObject<{ type: z.ZodLiteral<"makeswift::controls::group">; config: z.ZodObject<{ label: z.ZodOptional; description: z.ZodOptional; preferredLayout: z.ZodUnion<[z.ZodLiteral<"makeswift::controls::group::layout::inline">, z.ZodLiteral<"makeswift::controls::group::layout::popover">]>; props: z.ZodObject<{ [x: string]: any; }, "strip", z.ZodTypeAny, { [x: string]: any; }, { [x: string]: any; }>; }, "strip", z.ZodTypeAny, { props: { [x: string]: any; }; preferredLayout: "makeswift::controls::group::layout::inline" | "makeswift::controls::group::layout::popover"; label?: string | undefined; description?: string | undefined; }, { props: { [x: string]: any; }; preferredLayout: "makeswift::controls::group::layout::inline" | "makeswift::controls::group::layout::popover"; label?: string | undefined; description?: string | undefined; }>; }, "strip", z.ZodTypeAny, { type: "makeswift::controls::group"; config: { props: { [x: string]: any; }; preferredLayout: "makeswift::controls::group::layout::inline" | "makeswift::controls::group::layout::popover"; label?: string | undefined; description?: string | undefined; }; }, { type: "makeswift::controls::group"; config: { props: { [x: string]: any; }; preferredLayout: "makeswift::controls::group::layout::inline" | "makeswift::controls::group::layout::popover"; label?: string | undefined; description?: string | undefined; }; }>; version: z.ZodLiteral<1>; }; safeParse(data: unknown | undefined): ParseResult | undefined>; fromData(data: DataType | undefined): ValueType | undefined; propsToData(propsData: PropsData): DataType; toData(value: ValueType): DataType; copyData(data: DataType | undefined, context: CopyContext): DataType | undefined; getTranslatableData(data: DataType | undefined): Data; resolveValue(data: DataType | undefined, resolver: ResourceResolver, stylesheet: Stylesheet, control?: InstanceType): Resolvable | undefined>; createInstance(args: ControlInstanceArgs): GroupControl>; accept(visitor: ControlDefinitionVisitor, ...args: unknown[]): R; introspect(data: DataType | undefined, target: IntrospectionTarget): R[]; static propsData(data: DataType): PropsData; static propDataPath(data: DataType, key: string): string[]; private static isVersionedData; } export declare class GroupDefinition extends Definition { } export declare function Group(config: Config): GroupDefinition>; export declare namespace Group { var Layout: { readonly Inline: "makeswift::controls::group::layout::inline"; readonly Popover: "makeswift::controls::group::layout::popover"; }; } export {}; //# sourceMappingURL=group.d.ts.map