import type { AgTypeScriptComponent } from '../../api/agCustomComp'; import type { AgWidgetField } from '../../api/agField'; import type { AgFieldRole } from '../../api/agFieldDefinition'; import type { AgWidgetConfig } from '../../api/agWidgetConfig'; import type { AgWidgetFormFormatID } from '../../api/agWidgetForm'; import type { AgWidgetParams, BaseWidgetParams } from '../../api/agWidgetParams'; import type { AgWidgetData, AgWidgetDataFormat } from '../../api/widgets/shared/agWidget'; export interface WidgetFieldRelation { field: AgWidgetField; cardinality: 'one' | 'many' | 'either'; } export interface WidgetFieldRequirements { roles: AgFieldRole[]; aggregateByDefault: AgFieldRole[]; aggregationPermitted: boolean; relations: WidgetFieldRelation[]; } interface SourceParams { config: AgWidgetConfig; dataMapping: Partial>; formatOverride: WidgetFormatOverride; } export type WidgetFormatOverride = Partial>; /** Shape output type — the properties a widget shape provides after parsing/hydration. */ export type WidgetShapeOutput = Pick & { type: string; }; export interface WidgetParams extends BaseWidgetParams, AgWidgetDataFormat>> { formatOverride: WidgetFormatOverride; sourceParams: SourceParams | undefined; } export type WidgetComponent = AgTypeScriptComponent>>>; export {};