import { MatDialogRef, MatDialog } from '@angular/material/dialog'; import * as _angular_core from '@angular/core'; import { EventEmitter, OnInit, WritableSignal, InjectionToken, Provider, OnChanges, OnDestroy, Type, SimpleChanges } from '@angular/core'; import { ComponentDocMeta, ComponentMetadataRegistry, PraxisI18nService, WidgetShellConfig, WidgetShellAction, EndpointRef, ComponentPortPathSegment, LinkIntent, CompositionLink, WidgetPageDefinition, TransformKind, SurfaceOpenPayload, SettingsValueProvider as SettingsValueProvider$1, WidgetPageGroupingDefinition, BUILTIN_PAGE_LAYOUT_PRESETS, BUILTIN_PAGE_THEME_PRESETS, PageIdentity, WidgetStateNode, WidgetDerivedStateNode, AiCapability, AiCapabilityCategory, AiCapabilityCatalog, AiValueKind, DomainKnowledgeChangeSetRequest, DomainKnowledgeChangeSet, DomainKnowledgeChangeSetTimelineResponse, DomainKnowledgeChangeSetFilters, DomainKnowledgeValidationResponse, DomainKnowledgeStatusTransitionRequest, DomainRuleIntakeRequest, DomainRuleIntakeResponse, DomainRuleDefinitionRequest, DomainRuleDefinition, DomainRuleSimulationRequest, DomainRuleSimulationResponse, DomainRuleStatusTransitionRequest, DomainRulePublicationRequest, DomainRulePublicationResponse, DomainRuleMaterializationFilters, DomainRuleMaterialization, DomainRuleTimelineResponse, PraxisRuntimeComponentObservationEnvelope, WidgetPageCanvasLayout, WidgetPageDeviceLayouts, WidgetPageSlotAssignments, WidgetPageStateInput, WidgetInstance, ComponentContextPack, ComponentAuthoringManifest, DynamicWidgetPageComponent, WidgetEventEnvelope, ObservabilityAgenticTurnMetrics, SettingsPanelBridge, ObservabilityAgenticTurnMetricBucket, RichTimelineItem } from '@praxisui/core'; import * as rxjs from 'rxjs'; import { BehaviorSubject, Observable } from 'rxjs'; import { FormGroup, FormControl, FormArray } from '@angular/forms'; import { SettingsValueProvider } from '@praxisui/settings-panel'; import { AgenticAuthoringAttachmentSummaryContract, AgenticAuthoringCandidateContract, AiJsonValue, AgenticAuthoringComponentCapabilitiesResultContract, AgenticAuthoringComponentCapabilityCatalogContract, AgenticAuthoringComponentCapabilityContract, AgenticAuthoringComponentFieldAliasContract, AgenticAuthoringComponentCapabilityExampleContract, AgenticAuthoringConversationMessageContract, AgenticAuthoringIntentResolutionRequestContract, AiJsonObject, AgenticAuthoringQuickReplyContract, AgenticAuthoringPendingClarificationContract, AiContextHintsContract, AgenticAuthoringSemanticDecisionContract, AgenticAuthoringPlanRequestContract, AgenticAuthoringResourceCandidatesRequestContract, AgenticAuthoringResourceCandidatesResultContract, AgenticAuthoringTurnStreamContextHintsContract, AgenticAuthoringTurnStreamEnvelopeContract, AgenticAuthoringTurnStreamStartResponseContract, PraxisAssistantVoiceInputMode, PraxisAssistantShellMessage, PraxisAssistantShellQuickReply, PraxisAssistantShellAttachment, PraxisAssistantShellLayout, PraxisAssistantSessionSnapshot, PraxisAssistantShellLabels, PraxisAssistantRecommendedIntent, PraxisAssistantShellAction, PraxisAssistantShellState, PraxisAssistantShellContextItem } from '@praxisui/ai'; declare const PLACEHOLDER = 1; interface ConfirmDialogData { title?: string; message?: string; confirmLabel?: string; cancelLabel?: string; icon?: string; } declare class ConfirmDialogComponent { data: ConfirmDialogData; ref: MatDialogRef; constructor(data: ConfirmDialogData, ref: MatDialogRef); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class TileToolbarComponent { selected: boolean; widgetType: string | null; remove: EventEmitter; settings: EventEmitter; shell: EventEmitter; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class FloatingToolbarComponent { visible: boolean; canUndo: boolean; canRedo: boolean; showSave: boolean; showPreview: boolean; editingEnabled: boolean; previewActive: boolean; connectionMode: boolean; modeLabel: string; addLabel: string; saveLabel: string; undoLabel: string; redoLabel: string; settingsLabel: string; previewLabel: string; exitPreviewLabel: string; add: EventEmitter; undo: EventEmitter; redo: EventEmitter; settings: EventEmitter; preview: EventEmitter; save: EventEmitter; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface ComponentPaletteSelection { componentId: string; presetId?: string; inputs?: Record; } interface ComponentPaletteData { title?: string; allowedWidgetIds?: string[]; allowedWidgetTags?: string[]; allowedPresetIds?: string[]; predicate?: (m: ComponentDocMeta) => boolean; } interface ComponentPaletteEntry { key: string; componentId: string; presetId?: string; title: string; description: string; icon: string; badges: ComponentPaletteBadge[]; searchText: string; inputs?: Record; } interface ComponentPaletteBadge { label: string; icon: string; tone: 'ready' | 'info' | 'warning' | 'neutral'; description: string; } declare class ComponentPaletteDialogComponent implements OnInit { private dialogRef; private registry; private i18n; data?: ComponentPaletteData | undefined; query: _angular_core.WritableSignal; private all; filtered: _angular_core.Signal; density: _angular_core.Signal<"roomy" | "dense" | "normal">; constructor(dialogRef: MatDialogRef, registry: ComponentMetadataRegistry, i18n: PraxisI18nService, data?: ComponentPaletteData | undefined); ngOnInit(): void; select(entry: ComponentPaletteEntry): void; trackById: (_: number, entry: ComponentPaletteEntry) => string; getPreview(entry: ComponentPaletteEntry): string; tx(key: string, fallback: string): string; private _adjustSizeEffect; private applyFilters; private buildEntries; private buildBadges; private buildBadgeSearchText; private hasDataSourceInputs; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type ShellInputs = { shell?: WidgetShellConfig | null; widgetKey?: string; widgetType?: string; presets?: Record | null; pagePreset?: string | null; }; type ShellEditorResult = { shell: WidgetShellConfig | null; applyToAll?: boolean; pagePreset?: string; }; type AvailableShellAction = { kind: 'action' | 'command'; id: string; label: string; icon?: string; scope?: NonNullable[number]['scope'] | 'any'; emit?: string; command?: string; description?: string; payloadExample?: any; }; type SetInputValueOption = { label: string; value: any; icon?: string; }; type SetInputPreset = { input: string; label: string; icon?: string; values: SetInputValueOption[]; }; declare class WidgetShellEditorComponent implements SettingsValueProvider { private registry?; form: FormGroup<{ kind: FormControl<"none" | "dashboard-card">; preset: FormControl; applyToAll: FormControl; title: FormControl; subtitle: FormControl; icon: FormControl; showHeader: FormControl<"auto" | "true" | "false">; collapsible: FormControl; cardBg: FormControl; cardBorder: FormControl; cardRadius: FormControl; cardShadow: FormControl; headerBg: FormControl; headerBorder: FormControl; titleColor: FormControl; subtitleColor: FormControl; iconColor: FormControl; bodyBg: FormControl; bodyColor: FormControl; bodyPadding: FormControl; titleSize: FormControl; titleWeight: FormControl; subtitleSize: FormControl; actions: FormArray>; }>; private readonly initialShell; private readonly dirtySubject; private readonly validSubject; private readonly busySubject; isDirty$: rxjs.Observable; isValid$: rxjs.Observable; isBusy$: rxjs.Observable; private snapshot; private initialTitle; private initialSubtitle; private readonly actionCopySources; presetOptions: Array<{ id: string; label: string; }>; private presets; availableActions: AvailableShellAction[]; actionQuery: FormControl; showScopeShell: boolean; showScopeAny: boolean; showScopeToolbar: boolean; showScopeContext: boolean; setInputPresets: SetInputPreset[]; setInputTarget: FormControl; setInputValue: FormControl; previewCollapsed: boolean; previewExpanded: boolean; pagePreset: string | null; constructor(data?: ShellInputs | null, registry?: (ComponentMetadataRegistry | null) | undefined); get actions(): FormArray; get hasAvailableActions(): boolean; addAction(seed?: Partial): void; removeAction(index: number): void; getSettingsValue(): ShellEditorResult; onSave(): ShellEditorResult; reset(): void; private applyShell; private loadAvailableActions; private createActionGroup; private buildShell; private buildResult; private buildAppearance; previewVars(): Record; previewShowHeader(): boolean; previewTitle(): string; previewSubtitle(): string; private buildPreviewAppearance; private mergeAppearance; togglePreviewCollapse(): void; togglePreviewExpand(): void; previewHeaderActions(): WidgetShellAction[]; previewOverflowCount(): number; previewWindowActions(): WidgetShellAction[]; private normalizeAction; private editableText; private preserveTextDescriptor; private tryParsePayload; private snapshotValue; filteredAvailableActions(): AvailableShellAction[]; isActionSelected(action: AvailableShellAction): boolean; toggleAvailableAction(action: AvailableShellAction): void; scopeLabel(scope?: string): string; stringifyPayload(payload: any): string; displayInputPath(path: string): string; extractActionInput(actionValue: any): string; showActionInputPath(actionValue: any): boolean; currentSetInputValues(): SetInputValueOption[]; addSetInputAction(): void; private findActionIndex; private previewActions; private loadSetInputPresets; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type ConnectionEditorPortKind = 'output' | 'input' | 'state'; interface ConnectionEditorPort { id: string; nodeId: string; label: string; kind: ConnectionEditorPortKind; endpoint: EndpointRef; nestedPath?: ComponentPortPathSegment[]; } interface ConnectionEditorNode { id: string; title: string; subtitle: string; icon?: string; x: number; y: number; rotationDegrees?: number; portOrder?: string[]; outputs: ConnectionEditorPort[]; inputs: ConnectionEditorPort[]; states: ConnectionEditorPort[]; } type ConnectionEditorDiagnosticSeverity = 'error' | 'warning'; type ConnectionEditorDiagnosticCode = 'endpoint-widget-missing' | 'endpoint-unresolved' | 'endpoint-not-declared' | 'nested-path-terminal-missing' | 'nested-path-not-declared' | 'state-path-not-declared' | 'feedback-cycle-unguarded' | 'feedback-cycle-guarded'; interface ConnectionEditorDiagnostic { code: ConnectionEditorDiagnosticCode; severity: ConnectionEditorDiagnosticSeverity; endpoint: 'from' | 'to' | 'link'; relatedLinkIds?: string[]; } interface ConnectionEditorConnection { id: string; fromNode: string | null; toNode: string | null; fromLabel: string; toLabel: string; fromPort: ConnectionEditorPort | null; toPort: ConnectionEditorPort | null; intent: LinkIntent; link: CompositionLink; diagnostics: ConnectionEditorDiagnostic[]; } interface ConnectionEditorGraph { nodes: ConnectionEditorNode[]; connections: ConnectionEditorConnection[]; portById: Map; portByEndpointKey: Map; connectionToLink: Map; diagnostics: ConnectionEditorDiagnostic[]; } type ConnectionEditorSuggestionReason = 'row-selection-to-id' | 'state-to-input' | 'compatible-port'; interface ConnectionEditorSuggestion { id: string; source: ConnectionEditorPort; target: ConnectionEditorPort; sourceNodeTitle: string; targetNodeTitle: string; intent: LinkIntent; reason: ConnectionEditorSuggestionReason; score: number; } type ConnectionEditorTracePhase = 'emit' | 'condition' | 'transform' | 'deliver' | 'write' | 'read' | 'blocked'; interface ConnectionEditorTraceStep { id: string; order: number; connectionId: string; phase: ConnectionEditorTracePhase; fromLabel: string; toLabel: string; intent: string; blocked: boolean; } interface ConnectionsViewerNode { widgetId: string; componentType: string; incomingCount: number; outgoingCount: number; } interface ConnectionsViewerEdge { id: string; fromKind: CompositionLink['from']['kind']; fromWidgetId: string | null; fromEndpointId: string | null; fromNestedPath: ComponentPortPathSegment[] | null; fromPort: string | null; toKind: CompositionLink['to']['kind']; toWidgetId: string | null; toEndpointId: string | null; toNestedPath: ComponentPortPathSegment[] | null; toPort: string | null; toStatePath: string | null; intent: CompositionLink['intent']; hasCondition: boolean; hasTransform: boolean; hasPolicy: boolean; hasDiagnostics: boolean; diagnosticReasons: string[]; link: CompositionLink; } interface ConnectionsViewerModel { nodes: ConnectionsViewerNode[]; edges: ConnectionsViewerEdge[]; totalLinks: number; conditionLinks: number; transformLinks: number; policyLinks: number; diagnosticLinks: number; } interface ConnectionEditorPoint { x: number; y: number; } interface ConnectionEditorSegmentGeometry { port: ConnectionEditorPort; path: string; anchor: ConnectionEditorPoint; label: ConnectionEditorPoint; icon: ConnectionEditorPoint; normalAngle: number; color: string; } type ConnectionEditorPortOrderState = Record; type ConnectionsEditorFilter = 'all' | 'condition' | 'transform' | 'policy' | 'diagnostic'; type ConnectionEditorFlowMode = 'all' | 'data' | 'event' | 'capability' | 'simulation'; type ConnectionEditorDockTab = 'json' | 'links' | 'derived' | 'export'; type ConnectionEditorConditionPreset = 'source-present' | 'source-id-present'; type ConnectionEditorPolicyPreset = 'stable-delivery' | 'skip-missing'; type ConnectionEditorVisualDensity = 'guided' | 'full'; interface DragState { port: ConnectionEditorPort; source: ConnectionEditorPoint; pointer: ConnectionEditorPoint; candidate: ConnectionEditorPort | null; } interface PendingSegmentState { port: ConnectionEditorPort; nodeId: string; start: ConnectionEditorPoint; source: ConnectionEditorPoint; } interface InvalidDropFeedbackState { id: number; source: ConnectionEditorPort; target: ConnectionEditorPort | null; point: ConnectionEditorPoint; } interface PanState { startClientX: number; startClientY: number; originX: number; originY: number; } interface MinimapPanState { pointerId: number; } interface RotationState { nodeId: string; startAngle: number; startRotation: number; } interface NodeDragState { nodeId: string; start: ConnectionEditorPoint; originOffset: ConnectionEditorPoint; moved: boolean; } interface ViewportState { x: number; y: number; scale: number; } interface ConnectionEditorBounds { x: number; y: number; width: number; height: number; } interface ConnectionEditorTooltipPosition { x: number; y: number; } interface ConnectionEditorHistoryEntry { before: WidgetPageDefinition; after: WidgetPageDefinition; selectedBefore: string | null; selectedAfter: string | null; } interface ConnectionEditorDockTabDefinition { id: ConnectionEditorDockTab; label: string; glyph: string; } declare class ConnectionEditorComponent { readonly stateNodeId = "__page_state__"; readonly nodeViewBox = "0 0 168 168"; readonly canvasViewBox = "0 0 900 540"; readonly nodeHaloPaths: string[]; private readonly i18n; private readonly hostElement; private readonly globalActionCatalog; readonly open: _angular_core.InputSignal; readonly page: _angular_core.InputSignal; readonly pageChange: _angular_core.OutputEmitterRef; readonly focusWidget: _angular_core.OutputEmitterRef; readonly openPageSettings: _angular_core.OutputEmitterRef; readonly close: _angular_core.OutputEmitterRef; readonly activeMode: _angular_core.WritableSignal; readonly activeFilter: _angular_core.WritableSignal; readonly selectedWidgetId: _angular_core.WritableSignal; readonly selectedLinkId: _angular_core.WritableSignal; readonly recentLinkId: _angular_core.WritableSignal; readonly lastCreatedLinkId: _angular_core.WritableSignal; readonly hoveredLinkId: _angular_core.WritableSignal; readonly expandedNodeId: _angular_core.WritableSignal; readonly activeDockTab: _angular_core.WritableSignal; readonly dockCollapsed: _angular_core.WritableSignal; readonly traceEnabled: _angular_core.WritableSignal; readonly traceStepIndex: _angular_core.WritableSignal; readonly traceSourceNodeId: _angular_core.WritableSignal; readonly selectedPort: _angular_core.WritableSignal; readonly hoveredNodeId: _angular_core.WritableSignal; readonly visualDensity: _angular_core.WritableSignal; readonly globalActionPayloadError: _angular_core.WritableSignal; readonly pendingSegmentState: _angular_core.WritableSignal; readonly dragState: _angular_core.WritableSignal; readonly nodeDragState: _angular_core.WritableSignal; readonly invalidDropFeedback: _angular_core.WritableSignal; readonly panState: _angular_core.WritableSignal; readonly minimapPanState: _angular_core.WritableSignal; readonly rotationState: _angular_core.WritableSignal; readonly viewport: _angular_core.WritableSignal; readonly portOrder: _angular_core.WritableSignal; readonly nodeRotations: _angular_core.WritableSignal>; readonly nodeOffsets: _angular_core.WritableSignal>; readonly undoStack: _angular_core.WritableSignal; readonly redoStack: _angular_core.WritableSignal; private invalidDropFeedbackId; private invalidDropFeedbackTimer; private recentLinkFeedbackTimer; private minimapPointerCaptureTarget; private suppressedNodeClickId; private readonly fitViewportOnOpen; readonly filters: ({ id: "all"; label: string; } | { id: "condition"; label: string; } | { id: "transform"; label: string; } | { id: "policy"; label: string; } | { id: "diagnostic"; label: string; })[]; readonly flowModes: ({ id: "all"; label: string; glyph: string; } | { id: "data"; label: string; glyph: string; } | { id: "event"; label: string; glyph: string; } | { id: "capability"; label: string; glyph: string; } | { id: "simulation"; label: string; glyph: string; })[]; readonly dockTabs: ({ id: "json"; label: string; glyph: string; } | { id: "links"; label: string; glyph: string; } | { id: "derived"; label: string; glyph: string; } | { id: "export"; label: string; glyph: string; })[]; readonly model: _angular_core.Signal; readonly selectedNode: _angular_core.Signal; readonly visibleEdges: _angular_core.Signal; readonly selectedEdge: _angular_core.Signal; readonly editorGraph: _angular_core.Signal; readonly connectedNodeIds: _angular_core.Signal>; readonly connectedPortIds: _angular_core.Signal>; readonly editorNodes: _angular_core.Signal; readonly navigationBounds: _angular_core.Signal; readonly minimapViewBox: _angular_core.Signal; readonly editorConnections: _angular_core.Signal; readonly canvasEditorConnections: _angular_core.Signal; readonly visibleEditorConnections: _angular_core.Signal; readonly modeMatchedConnectionIds: _angular_core.Signal>; readonly modeMatchedNodeIds: _angular_core.Signal>; readonly modeMatchedPortIds: _angular_core.Signal>; readonly smartSuggestions: _angular_core.Signal; readonly recommendedMasterDetailSuggestion: _angular_core.Signal; readonly masterDetailReadinessDiagnostic: _angular_core.Signal; readonly traceSteps: _angular_core.Signal; readonly activeTraceStepIndex: _angular_core.Signal; readonly traceActiveStep: _angular_core.Signal; readonly tracedConnectionIds: _angular_core.Signal>; readonly traceProgressPercent: _angular_core.Signal; readonly traceProgressLabel: _angular_core.Signal; readonly traceSourceNodeIds: _angular_core.Signal>; readonly traceReactingNodeIds: _angular_core.Signal>; readonly focusedConnectionNodeIds: _angular_core.Signal>; readonly focusedConnectionPortIds: _angular_core.Signal>; readonly diagnosticConnectionIds: _angular_core.Signal>; readonly diagnosticLinkCount: _angular_core.Signal; readonly selectedEditorNode: _angular_core.Signal; readonly selectedConnection: _angular_core.Signal; readonly connectionTooltip: _angular_core.Signal; readonly canvasInteractionActive: _angular_core.Signal; readonly visibleConnectionTooltip: _angular_core.Signal; readonly visibleExpandedNodeId: _angular_core.Signal; readonly canUndo: _angular_core.Signal; readonly canRedo: _angular_core.Signal; readonly hasVisualPortOrder: _angular_core.Signal; readonly dragPreviewPath: _angular_core.Signal; readonly dragTargetPoint: _angular_core.Signal; readonly dragTipPosition: _angular_core.Signal<{ x: number; y: number; }>; readonly invalidDropPosition: _angular_core.Signal<{ x: number; y: number; }>; readonly invalidDropTipPosition: _angular_core.Signal<{ x: number; y: number; }>; readonly dragEndpointText: _angular_core.Signal; readonly invalidDropEndpointText: _angular_core.Signal; readonly dragStatusText: _angular_core.Signal; readonly invalidDropStatusText: _angular_core.Signal; readonly viewportTransform: _angular_core.Signal; readonly minimapViewport: _angular_core.Signal<{ x: number; y: number; width: number; height: number; }>; selectNode(nodeId: string): void; selectSegment(port: ConnectionEditorPort, event: MouseEvent): void; selectWidget(node: ConnectionsViewerNode): void; selectLink(edge: ConnectionsViewerEdge): void; selectConnection(connection: ConnectionEditorConnection): void; jumpToConnection(connection: ConnectionEditorConnection, event: Event): void; previewConnection(connection: ConnectionEditorConnection): void; clearPreviewConnection(connection: ConnectionEditorConnection): void; handleEditorKeydown(event: KeyboardEvent): void; setFilter(filter: ConnectionsEditorFilter): void; setMode(mode: ConnectionEditorFlowMode): void; toggleVisualDensity(event: Event): void; visualDensityAriaLabel(): string; activeModeStatus(): string; setDockTab(tab: ConnectionEditorDockTab): void; handleDockTabKeydown(event: KeyboardEvent, tab: ConnectionEditorDockTab): void; toggleDock(): void; toggleTrace(event: Event): void; selectTraceSource(nodeId: string | null, event: Event): void; moveTraceStep(delta: -1 | 1, event: Event): void; selectTraceStep(index: number, event: Event): void; quickConnectSuggestion(suggestion: ConnectionEditorSuggestion, event: Event): void; startDrag(port: ConnectionEditorPort, event: PointerEvent): void; startSegmentDrag(port: ConnectionEditorPort, event: PointerEvent): void; updatePendingSegment(event: PointerEvent): void; updateDrag(event: PointerEvent): void; startNodeDrag(nodeId: string, event: PointerEvent): void; updateNodeDrag(event: PointerEvent): void; stopNodeDrag(): void; finishNodePointer(nodeId: string, event: PointerEvent): void; closeFloatingPanelsOnOutsidePointerDown(event: PointerEvent): void; previewDrop(target: ConnectionEditorPort): void; clearPreviewDrop(target: ConnectionEditorPort): void; completeDrag(target: ConnectionEditorPort, event: PointerEvent): void; cancelDrag(event?: PointerEvent): void; cancelPendingSegment(): void; startPan(event: PointerEvent): void; updatePan(event: PointerEvent): void; stopPan(): void; startMinimapPan(event: PointerEvent): void; updateMinimapPan(event: PointerEvent): void; stopMinimapPan(): void; startNodeRotation(nodeId: string, event: PointerEvent): void; updateRotation(event: PointerEvent): void; stopRotation(): void; zoomCanvas(event: WheelEvent): void; zoomBy(delta: number, event: Event): void; resetViewport(event?: Event): void; autoArrange(event: Event): void; reorganizeSlices(event: Event): void; isCompatibleDrop(target: ConnectionEditorPort): boolean; isCompatibilityPreview(target: ConnectionEditorPort): boolean; isDropCandidate(target: ConnectionEditorPort): boolean; isDragSource(port: ConnectionEditorPort): boolean; isIncompatibleDrop(target: ConnectionEditorPort): boolean; nodeHasCompatiblePreviewPort(node: ConnectionEditorNode): boolean; isInvalidDropFeedbackTarget(target: ConnectionEditorPort): boolean; removeLink(linkId: string): void; undoHistory(event: Event): void; redoHistory(event: Event): void; enableTransform(connection: ConnectionEditorConnection, event: Event): void; addTransformStep(connection: ConnectionEditorConnection, kind: TransformKind, event: Event): void; removeTransformStep(connection: ConnectionEditorConnection, index: number, event: Event): void; clearTransform(connection: ConnectionEditorConnection, event: Event): void; applyConditionPreset(connection: ConnectionEditorConnection, preset: ConnectionEditorConditionPreset, event: Event): void; clearCondition(connection: ConnectionEditorConnection, event: Event): void; applyPolicyPreset(connection: ConnectionEditorConnection, preset: ConnectionEditorPolicyPreset, event: Event): void; clearPolicy(connection: ConnectionEditorConnection, event: Event): void; nodeSegments(node: ConnectionEditorNode): ConnectionEditorSegmentGeometry[]; nodeSvgRotation(node: ConnectionEditorNode): string | null; segmentLabelTransform(segment: ConnectionEditorSegmentGeometry, node: ConnectionEditorNode): string; nodeRotationHandleTransform(node: ConnectionEditorNode): string; segmentDisplayLabel(label: string): string; isNestedPort(port: ConnectionEditorPort): boolean; nestedPortPathText(port: ConnectionEditorPort): string; portDescription(port: ConnectionEditorPort): string; segmentKindGlyph(kind: ConnectionEditorPortKind): string; nodeIcon(node: ConnectionEditorNode): string; dockTabLabel(tab: ConnectionEditorDockTabDefinition): string; dockTabId(tab: ConnectionEditorDockTab): string; dockPanelId(tab: ConnectionEditorDockTab): string; dockToggleLabel(): string; segmentKindText(kind: ConnectionEditorPortKind): string; connectionHasNestedEndpoint(connection: ConnectionEditorConnection): boolean; connectionNestedSummary(connection: ConnectionEditorConnection): string; private formatNestedPath; connectionHasErrors(connection: ConnectionEditorConnection): boolean; connectionHasWarnings(connection: ConnectionEditorConnection): boolean; connectionHasPolicy(connection: ConnectionEditorConnection): boolean; connectionMatchesMode(connection: ConnectionEditorConnection): boolean; hasModeFocus(): boolean; isModeDimmedConnection(connection: ConnectionEditorConnection): boolean; isModeDimmedNode(node: ConnectionEditorNode): boolean; isModeDimmedPort(port: ConnectionEditorPort): boolean; isGuidedQuietNode(node: ConnectionEditorNode): boolean; areNodePortsVisible(node: ConnectionEditorNode): boolean; isGuidedPortVisible(port: ConnectionEditorPort): boolean; isGuidedSegmentLabelVisible(port: ConnectionEditorPort): boolean; clearHoveredNode(nodeId: string): void; private updateAutoExpandedNode; edgeMatchesMode(edge: ConnectionsViewerEdge): boolean; isNodeFocusedByConnection(node: ConnectionEditorNode): boolean; isPortFocusedByConnection(port: ConnectionEditorPort): boolean; isTracedConnection(connection: ConnectionEditorConnection): boolean; isTraceSourceNode(node: ConnectionEditorNode): boolean; isTraceReactingNode(node: ConnectionEditorNode): boolean; traceNodeLabel(node: ConnectionEditorNode): string | null; tracePhaseText(phase: ConnectionEditorTracePhase): string; diagnosticSeverityLabel(diagnostic: ConnectionEditorDiagnostic): string; diagnosticText(diagnostic: ConnectionEditorDiagnostic): string; suggestionReasonText(reason: ConnectionEditorSuggestionReason): string; connectionSemanticLabel(connection: ConnectionEditorConnection): string; connectionHumanSummary(connection: ConnectionEditorConnection): string; connectionDeliveryPreview(connection: ConnectionEditorConnection): string; suggestionSemanticLabel(suggestion: ConnectionEditorSuggestion): string; suggestionPreviewText(suggestion: ConnectionEditorSuggestion): string; suggestionOutcomeText(suggestion: ConnectionEditorSuggestion): string; suggestionRouteTechnicalText(suggestion: ConnectionEditorSuggestion): string; suggestionActionText(suggestion: ConnectionEditorSuggestion): string; connectionCreatedFeedback(connection: ConnectionEditorConnection): string; portAriaLabel(node: ConnectionEditorNode, port: ConnectionEditorPort, role: 'input' | 'output' | 'state'): string; transformKindText(kind: TransformKind): string; private readableEndpointLabel; private isSelectionToDetailConnection; private isSuggestedMasterDetail; private isCanonicalSelectionToDetailConnection; private isTableSelectionOutput; private isFormResourceIdInput; private portComponentType; expandedPorts(node: ConnectionEditorNode): ConnectionEditorPort[]; movePort(node: ConnectionEditorNode, port: ConnectionEditorPort, direction: -1 | 1, event: Event): void; toggleSegments(node: ConnectionEditorNode, event: Event): void; wirePath(connection: ConnectionEditorConnection): string; wireSourcePoint(connection: ConnectionEditorConnection): { x: number; y: number; } | null; wireTargetPoint(connection: ConnectionEditorConnection): { x: number; y: number; } | null; wireRoutePoint(connection: ConnectionEditorConnection, key: 'sourceStub' | 'sourceControl' | 'targetControl' | 'targetStub' | 'midpoint'): { x: number; y: number; } | null; wireLabelTransform(connection: ConnectionEditorConnection, endpoint: 'source' | 'target'): string; minimapWirePath(connection: ConnectionEditorConnection): string; connectionTooltipPosition(connection: ConnectionEditorConnection): ConnectionEditorTooltipPosition; connectionTooltipCalloutX(connection: ConnectionEditorConnection): number; connectionTooltipKind(connection: ConnectionEditorConnection): string; dockJson(): WidgetPageDefinition | null | undefined; dockLinks(): unknown[]; dockDerived(): unknown; dockExport(): unknown; describeEdge(edge: ConnectionsViewerEdge): string; edgeHasDiagnostics(edge: ConnectionsViewerEdge): boolean; edgeDiagnostics(edge: ConnectionsViewerEdge): unknown[]; describeSource(edge: ConnectionsViewerEdge): string; describeTarget(edge: ConnectionsViewerEdge): string; globalActionPayloadText(connection: ConnectionEditorConnection): string; globalActionPayloadExample(connection: ConnectionEditorConnection): string; surfaceOpenPayloadValue(connection: ConnectionEditorConnection): SurfaceOpenPayload | null; surfaceOpenHostKind(connection: ConnectionEditorConnection): string; applySurfaceOpenPayload(connection: ConnectionEditorConnection, payload: SurfaceOpenPayload): void; applyGlobalActionPayload(connection: ConnectionEditorConnection, payloadText: string, event: Event): void; tx(key: string, fallback: string): string; private availableGlobalActions; private availableGlobalActionIds; private addLink; private ensureSourceOutputDeclared; private setConnectionTransform; private setConnectionCondition; private setConnectionPolicy; private updateConnectionLink; private commitPageChange; private defaultTransformPipeline; private createTransformStep; private createConditionPreset; private createPolicyPreset; private applyNodeRotation; private nodeRotationHandlePoint; private applyNodeOffset; private compatibilitySourcePort; private intentMatchesMode; private clonePage; private pagesEqual; private anchorForPort; private showInvalidDropFeedback; private clearInvalidDropFeedback; private markRecentLink; private scrollConnectionSidePanelToTop; private clearPreviewConnectionState; private shouldIgnoreEditorShortcut; private scrollActiveModeIntoView; private focusDockTab; private portQualifiedLabel; private stagePointFromEvent; private rotationAngleForNode; private snapDegrees; private portIndexAtPoint; private previewWirePath; private formatPoint; private labelPointBetween; private connectionTooltipAnchor; private applyZoom; private centerViewportOnMinimapEvent; private minimapPointFromEvent; private fitViewportState; private clampViewport; private connectionEditorNavigationBounds; private stageClientSize; private stageRect; private shouldIgnorePanTarget; private shouldIgnoreNodeDragTarget; private isFloatingPanelInteractionTarget; private clamp; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type EditorTabId$1 = 'canvas' | 'grouping' | 'devices' | 'context' | 'state'; type DeviceKey = 'desktop' | 'tablet' | 'mobile'; type GroupingNodeGroup$1 = FormGroup<{ kind: FormControl; id: FormControl; label: FormControl; widgetKeysCsv: FormControl; layout: FormControl; emphasis: FormControl; side: FormControl; tabsJson: FormControl; }>; type DeviceVariantForm = FormGroup<{ columns: FormControl; rowUnit: FormControl; gap: FormControl; autoRows: FormControl<'fixed' | 'content' | ''>; groupingOverrides: FormControl; widgetOverrides: FormControl; }>; type LayoutPresetEntry = { id: string; label: string; description: string; category: string; defaultColumns: number; defaultGap: string; slotLabels: string[]; requiredSlotLabels: string[]; deviceStacking: string; preferTabsOnMobile: boolean; hideSecondaryContentOnMobile: boolean; defaultThemePreset: string; }; type ThemePresetEntry = { id: string; label: string; description: string; density: string; motion: string; shellPreset: string; chartThemePreset: string; }; declare class DynamicPageConfigEditorComponent implements OnInit, SettingsValueProvider$1 { set page(value: WidgetPageDefinition | string | null | undefined); layout?: unknown; presets?: unknown; pagePreset?: string | null; pageChange: EventEmitter; readonly layoutPresetEntries: LayoutPresetEntry[]; readonly themePresetEntries: ThemePresetEntry[]; readonly shellPresetEntries: { id: string; label: string; }[]; readonly deviceKeys: DeviceKey[]; readonly deviceLabels: Record; readonly canvasColumnsControl: FormControl; readonly canvasRowUnitControl: FormControl; readonly canvasGapControl: FormControl; readonly canvasAutoRowsControl: FormControl<"content" | "fixed">; readonly layoutPresetControl: FormControl; readonly themePresetControl: FormControl; readonly shellPresetControl: FormControl; readonly contextControl: FormControl; readonly stateControl: FormControl; readonly groupingNodes: FormArray; readonly deviceForms: Record; readonly isDirty$: BehaviorSubject; readonly isValid$: BehaviorSubject; readonly isBusy$: BehaviorSubject; readonly activeTab: WritableSignal; readonly canvasError: WritableSignal; readonly groupingError: WritableSignal; readonly contextError: WritableSignal; readonly stateError: WritableSignal; readonly deviceError: WritableSignal; private readonly injectedData; private readonly i18n; private pageInput; private snapshot; private hydrating; private readonly tabOrder; constructor(); ngOnInit(): void; get selectedTabIndex(): number; get isConfigurationValid(): boolean; get hasPendingChanges(): boolean; get validationStateLabel(): string; get dirtyStateLabel(): string; get selectedLayoutPresetLabel(): string; get selectedThemePresetLabel(): string; get selectedLayoutPresetEntry(): LayoutPresetEntry | null; get selectedThemePresetEntry(): ThemePresetEntry | null; get recommendedThemePresetEntry(): ThemePresetEntry | null; get canvasSummaryLabel(): string; onSelectedTabIndexChange(index: number): void; getSettingsValue(): WidgetPageDefinition | null; onSave(): WidgetPageDefinition | null; reset(): void; pinRecommendedThemePreset(): void; addGroupingNode(seed?: WidgetPageGroupingDefinition): void; removeGroupingNode(index: number): void; layoutPresetSummary(preset: LayoutPresetEntry): string; slotsSummary(preset: LayoutPresetEntry): string; requiredSlotsSummary(preset: LayoutPresetEntry): string; devicePolicySummary(preset: LayoutPresetEntry): string; inheritedThemeHelp(theme: ThemePresetEntry): string; groupLabel(index: number): string; tx(key: string, fallback: string): string; private createDeviceVariantForm; private createGroupingNodeGroup; private hydrate; private replaceGroupingNodes; private buildCurrentPage; private buildGrouping; private buildDeviceLayouts; private invalidate; private refreshPanelState; private currentPageInput; private parsePage; private parseJson; private parseRecordJson; private parseGroupingTabs; private parseGroupingOverrides; private parseWidgetOverrides; private isGroupingTab; private isGroupingOverride; private isWidgetOverride; private isPlainObject; private hasDuplicateIds; private hasDuplicateStrings; private stringify; private stringifyGroupingWidgetKeys; private extractShellPreset; private removeShellPresetFromContext; private applyShellPresetToContext; private lookupPresetLabel; private defaultCanvas; private clone; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type LegacyGridOptions = { cols?: number; rowHeight?: number; gap?: number; }; type PageDefinition = WidgetPageDefinition & { options?: LegacyGridOptions; }; type EditorTabId = 'layout' | 'grouping' | 'devices' | 'state' | 'context'; type SchemaNodeGroup = FormGroup<{ path: FormControl; type: FormControl; initialMode: FormControl; initialJson: FormControl; initialScalar: FormControl; persist: FormControl; mergeStrategy: FormControl; description: FormControl; }>; type DerivedNodeGroup = FormGroup<{ path: FormControl; dependsOn: FormControl; computeKind: FormControl; operator: FormControl; sourcePath: FormControl; keysCsv: FormControl; expression: FormControl; transformerId: FormControl; options: FormControl; templateMode: FormControl; templateJson: FormControl; templateScalar: FormControl; description: FormControl; }>; type GroupingNodeGroup = FormGroup<{ kind: FormControl; id: FormControl; label: FormControl; widgetKeysCsv: FormControl; layout: FormControl; emphasis: FormControl; side: FormControl; tabsJson: FormControl; }>; declare class PageConfigEditorComponent implements SettingsValueProvider$1 { protected readonly derivedOperators: readonly ["merge-objects", "pick", "omit"]; protected readonly mergeStrategies: readonly ["replace", "merge", "append", "remove-keys"]; protected readonly valueModes: readonly ["json", "string", "number", "boolean", "null"]; protected readonly groupingKinds: readonly ["section", "tabs", "hero", "rail"]; protected readonly layoutPresetEntries: Array<(typeof BUILTIN_PAGE_LAYOUT_PRESETS)[string]>; protected readonly themePresetEntries: Array<(typeof BUILTIN_PAGE_THEME_PRESETS)[string]>; readonly page: _angular_core.InputSignal; readonly identity: _angular_core.InputSignal; readonly layoutCompatOptions: _angular_core.InputSignal; readonly pageChange: _angular_core.OutputEmitterRef; readonly form: FormGroup<{ cols: FormControl; rowHeight: FormControl; gap: FormControl; }>; readonly contextControl: FormControl; readonly shellPresetControl: FormControl; readonly layoutPresetControl: FormControl; readonly themePresetControl: FormControl; readonly groupingControl: FormControl; readonly deviceLayoutsControl: FormControl; readonly stateValuesControl: FormControl; readonly groupingNodes: FormArray; readonly schemaNodes: FormArray; readonly derivedNodes: FormArray; readonly deviceDesktopForm: FormGroup<{ orientation: FormControl; columns: FormControl; gap: FormControl; breakpointsJson: FormControl; groupingOverridesJson: FormControl; widgetOverridesJson: FormControl; }>; readonly deviceTabletForm: FormGroup<{ orientation: FormControl; columns: FormControl; gap: FormControl; breakpointsJson: FormControl; groupingOverridesJson: FormControl; widgetOverridesJson: FormControl; }>; readonly deviceMobileForm: FormGroup<{ orientation: FormControl; columns: FormControl; gap: FormControl; breakpointsJson: FormControl; groupingOverridesJson: FormControl; widgetOverridesJson: FormControl; }>; readonly contextError: _angular_core.WritableSignal; readonly layoutError: _angular_core.WritableSignal; readonly stateError: _angular_core.WritableSignal; readonly activeTab: _angular_core.WritableSignal; readonly shellPresetEntries: Array<{ id: string; label: string; }>; private lastContext; private lastGrouping; private lastDeviceLayouts; private lastStateValues; private readonly dirtySubject; private readonly validSubject; private readonly busySubject; private snapshot; private readonly tabOrder; private readonly i18n; private readonly injectedData; readonly isDirty$: rxjs.Observable; readonly isValid$: rxjs.Observable; readonly isBusy$: rxjs.Observable; protected readonly embeddedInSettingsPanel: boolean; get selectedTabIndex(): number; protected get hasPendingChanges(): boolean; protected get isConfigurationValid(): boolean; protected get validationStateLabel(): string; protected get dirtyStateLabel(): string; protected get selectedLayoutPresetLabel(): string; protected get selectedThemePresetLabel(): string; protected get selectedShellPresetLabel(): string; protected get contextExample(): string; protected get stateValuesExample(): string; protected get layoutPresetHint(): string; protected get themePresetHint(): string; protected get shellPresetHint(): string; protected get tabsJsonHint(): string; protected get breakpointsHint(): string; protected get groupingOverridesHint(): string; protected get widgetOverridesHint(): string; protected get schemaInitialHint(): string; protected get templateJsonHint(): string; protected get transformerOptionsHint(): string; constructor(); protected tx(key: string, fallback: string): string; addSchemaNode(seed?: { path?: string; config?: WidgetStateNode; }): void; removeSchemaNode(index: number): void; addDerivedNode(seed?: { path?: string; config?: WidgetDerivedStateNode; }): void; removeDerivedNode(index: number): void; addGroupingNode(seed?: WidgetPageGroupingDefinition): void; removeGroupingNode(index: number): void; setActiveTab(tab: EditorTabId): void; onSelectedTabIndexChange(index: number): void; apply(): void; reset(): void; private replaceGroupingNodes; private createGroupingNodeGroup; private stringifyGroupingWidgetKeys; private buildGrouping; private hydrateDeviceLayoutControls; private buildDeviceLayouts; private createDeviceLayoutForm; private patchDeviceLayoutForm; private buildDeviceLayoutVariant; private hydrateStateEditor; private replaceSchemaNodes; private replaceDerivedNodes; private createSchemaNodeGroup; private createDerivedNodeGroup; private buildState; private buildSchema; private buildDerived; private normalizeState; getSettingsValue(): PageDefinition | null; onSave(): PageDefinition | null; private lookupPresetLabel; private currentPageInput; private extractShellPreset; private buildCurrentPage; private applyShellPresetToContext; private refreshPanelState; private parsePage; private parseContext; private parseGrouping; private parseDeviceLayouts; private parseJson; private parseValueInput; private describeValue; private buildOperatorOptions; private buildOptions; private clone; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Capabilities catalog for the canonical dynamic page builder/runtime. */ declare module '@praxisui/core' { interface AiCapabilityCategoryMap { page: true; widgets: true; connections: true; context: true; state: true; } } type CapabilityCategory = AiCapabilityCategory; type ValueKind = AiValueKind; interface Capability extends AiCapability { category: CapabilityCategory; } interface CapabilityCatalog extends AiCapabilityCatalog { capabilities: Capability[]; } declare const PAGE_BUILDER_AI_CAPABILITIES: CapabilityCatalog; type PageBuilderAgenticAuthoringProvider = 'openai' | 'gemini' | string; interface PageBuilderAgenticAuthoringOptions { baseUrl?: string; headersFactory?: () => Record; defaultHeaders?: Record; createProjectKnowledgeChangeSet?: (request: DomainKnowledgeChangeSetRequest, options?: { headers?: Record | undefined; }) => Observable; getProjectKnowledgeChangeSet?: (changeSetId: string, options?: { headers?: Record | undefined; }) => Observable; getProjectKnowledgeChangeSetTimeline?: (changeSetId: string, options?: { headers?: Record | undefined; }) => Observable; listProjectKnowledgeChangeSets?: (filters: DomainKnowledgeChangeSetFilters, options?: { headers?: Record | undefined; }) => Observable; validateProjectKnowledgeChangeSet?: (changeSetId: string, options?: { headers?: Record | undefined; }) => Observable; transitionProjectKnowledgeChangeSetStatus?: (changeSetId: string, request: DomainKnowledgeStatusTransitionRequest, options?: { headers?: Record | undefined; }) => Observable; applyProjectKnowledgeChangeSet?: (changeSetId: string, options?: { headers?: Record | undefined; }) => Observable; sharedRuleIntake?: (request: DomainRuleIntakeRequest, options?: { headers?: Record | undefined; }) => Observable; sharedRuleCreateDefinition?: (request: DomainRuleDefinitionRequest, options?: { headers?: Record | undefined; }) => Observable; sharedRuleSimulate?: (request: DomainRuleSimulationRequest, options?: { headers?: Record | undefined; }) => Observable; sharedRuleTransitionDefinitionStatus?: (definitionId: string, request: DomainRuleStatusTransitionRequest, options?: { headers?: Record | undefined; }) => Observable; sharedRulePublish?: (request: DomainRulePublicationRequest, options?: { headers?: Record | undefined; }) => Observable; sharedRuleListMaterializations?: (filters: DomainRuleMaterializationFilters, options?: { headers?: Record | undefined; }) => Observable; sharedRuleGetDefinitionTimeline?: (definitionId: string, options?: { headers?: Record | undefined; }) => Observable; requestTimeoutMs?: number; streamStartTimeoutMs?: number; streamTurnTimeoutMs?: number; streamResultFallbackMs?: number; streamSilenceStatusMs?: number; } interface PageBuilderAgenticAuthoringTurnStreamConnectionError { readonly praxisAgenticTurnStreamConnectionError: true; readonly cause: unknown; } interface PageBuilderAgenticAuthoringPromptRequest extends Omit { provider?: PageBuilderAgenticAuthoringProvider | null; currentPage?: unknown; selectedWidgetKey?: string | null; intentResolution?: PageBuilderAgenticAuthoringIntentResolutionResult | null; componentCapabilities?: PageBuilderAgenticAuthoringComponentCapabilitiesResult | null; attachmentSummaries?: PageBuilderAgenticAuthoringAttachmentSummary[]; } interface PageBuilderAgenticAuthoringIntentResolutionRequest extends Omit { provider?: PageBuilderAgenticAuthoringProvider | null; currentPage?: unknown; componentCapabilities?: PageBuilderAgenticAuthoringComponentCapabilitiesResult | null; attachmentSummaries?: PageBuilderAgenticAuthoringAttachmentSummary[]; } interface PageBuilderAgenticAuthoringTurnStreamRequest { userPrompt: string; targetApp?: string | null; targetComponentId?: string | null; currentRoute?: string | null; provider?: PageBuilderAgenticAuthoringProvider | null; model?: string | null; apiKey?: string | null; currentPage?: unknown; selectedWidgetKey?: string | null; sessionId?: string | null; clientTurnId?: string | null; conversationMessages?: PageBuilderAgenticAuthoringConversationMessage[]; pendingClarification?: PageBuilderAgenticAuthoringPendingClarification | null; componentCapabilities?: PageBuilderAgenticAuthoringComponentCapabilitiesResult | null; attachmentSummaries?: PageBuilderAgenticAuthoringAttachmentSummary[]; contextHints?: AgenticAuthoringTurnStreamContextHintsContract | null; activeSemanticDecision?: AgenticAuthoringSemanticDecisionContract | null; diagnostics?: AiJsonObject | null; runtimeComponentObservations?: readonly PraxisRuntimeComponentObservationEnvelope[]; runtimeComponentObservationTrustBoundary?: 'untrusted_frontend_observation'; } type PageBuilderAgenticAuthoringConversationMessage = AgenticAuthoringConversationMessageContract; type PageBuilderAgenticAuthoringPendingClarification = AgenticAuthoringPendingClarificationContract; type PageBuilderAgenticAuthoringQuickReply = AgenticAuthoringQuickReplyContract; type PageBuilderAgenticAuthoringAttachmentSummary = AgenticAuthoringAttachmentSummaryContract; interface PageBuilderAgenticAuthoringCandidate extends AgenticAuthoringCandidateContract { resourcePath: string; operation: string; schemaUrl: string; submitUrl: string; submitMethod: string; score: number; reason: string; evidence: string[]; [key: string]: AiJsonValue | undefined; } interface PageBuilderAgenticAuthoringResourceCandidatesRequest extends AgenticAuthoringResourceCandidatesRequestContract { } interface PageBuilderAgenticAuthoringResourceCandidatesResult extends Omit { valid: boolean; tool: string; retrievalQuery: string; artifactKind: string; assistantMessage?: string | null; candidates: PageBuilderAgenticAuthoringCandidate[]; quickReplies?: PageBuilderAgenticAuthoringQuickReply[]; warnings: string[]; } interface PageBuilderAgenticAuthoringTarget { widgetKey: string; componentId: string; resourcePath: string; schemaUrl: string; submitUrl: string; submitMethod: string; } interface PageBuilderAgenticAuthoringGateResult { gateId: string; status: string; messages: string[]; } interface PageBuilderAgenticAuthoringComponentFieldAlias extends AgenticAuthoringComponentFieldAliasContract { field: string; aliases: string[]; } interface PageBuilderAgenticAuthoringComponentCapability extends Omit { id: string; changeKind: string; triggerTerms: string[]; fieldAliases: PageBuilderAgenticAuthoringComponentFieldAlias[]; examples?: PageBuilderAgenticAuthoringComponentCapabilityExample[]; } interface PageBuilderAgenticAuthoringComponentCapabilityExample extends AgenticAuthoringComponentCapabilityExampleContract { prompt: string; intent: string; configHints: string[]; } interface PageBuilderAgenticAuthoringComponentCapabilityCatalog extends Omit { componentId: string; version: string; capabilities: PageBuilderAgenticAuthoringComponentCapability[]; } interface PageBuilderAgenticAuthoringComponentCapabilitiesResult extends Omit { version: string; catalogs: PageBuilderAgenticAuthoringComponentCapabilityCatalog[]; } interface PageBuilderAgenticAuthoringIntentResolutionResult { valid: boolean; operationKind: string; artifactKind: string; changeKind: string; authoringProfile: string; targetApp: string; targetComponentId: string; target: PageBuilderAgenticAuthoringTarget | null; selectedCandidate: PageBuilderAgenticAuthoringCandidate | null; candidates: PageBuilderAgenticAuthoringCandidate[]; gate: PageBuilderAgenticAuthoringGateResult; effectivePrompt?: string | null; assistantMessage?: string | null; assistantContent?: AiJsonObject | null; quickReplies?: PageBuilderAgenticAuthoringQuickReply[]; pendingClarification?: PageBuilderAgenticAuthoringPendingClarification | null; clarificationQuestions: string[]; warnings: string[]; failureCodes: string[]; currentPageSummary: unknown; contextHints?: AiContextHintsContract | null; llmDiagnostics?: AiJsonObject | null; semanticDecision?: AgenticAuthoringSemanticDecisionContract | null; } interface PageBuilderMinimalFormPlanResult { valid: boolean; failureCodes: string[]; warnings: string[]; minimalFormPlan: unknown; } interface PageBuilderCompiledFormPatch { profileId?: string; catalogReleaseId?: string; builderVersion?: string; patch?: { page?: BuilderPageDefinition; }; [key: string]: unknown; } interface PageBuilderPreviewDiagnostics { derivedCurrentPageSummary?: boolean; targetWidgetKey?: string; operationKind?: string; changeKind?: string; fieldScopeDecision?: string; projectKnowledgeAudit?: PageBuilderProjectKnowledgeAudit | null; } interface PageBuilderProjectKnowledgeAudit { schemaVersion?: string; source?: string; influenceCount?: number; citedCount?: number; uncitedCount?: number; citationPolicy?: string; entries?: Array<{ knowledgeId?: string; conceptKey?: string; kind?: string; visibility?: string; influence?: string; sourceSummary?: string; cited?: boolean; sourceRefs?: string[]; }>; } interface PageBuilderPreviewResult { valid: boolean; failureCodes: string[]; warnings: string[]; minimalFormPlan: unknown; uiCompositionPlan?: unknown; compiledFormPatch: PageBuilderCompiledFormPatch; diagnostics?: PageBuilderPreviewDiagnostics | null; assistantMessage?: string | null; } type PageBuilderAgenticAuthoringTurnStreamStartResponse = AgenticAuthoringTurnStreamStartResponseContract; type PageBuilderAgenticAuthoringTurnStreamEvent = AgenticAuthoringTurnStreamEnvelopeContract; interface PageBuilderApplyRequest { compiledFormPatch: PageBuilderCompiledFormPatch; componentId: string; streamId: string; resultEventId: string; componentType?: string; scope?: 'user' | 'tenant'; tags?: Record; ifMatch?: string; semanticDecision?: AgenticAuthoringSemanticDecisionContract | null; } interface PageBuilderApplyResult { applied: boolean; componentType: string; componentId: string; environment?: string; scope: 'user' | 'tenant' | string; version: number; etag?: string; payload: BuilderPageDefinition; tags?: Record; warnings: string[]; } declare const PAGE_BUILDER_AGENTIC_AUTHORING_OPTIONS: InjectionToken; declare class PageBuilderAgenticAuthoringService { private readonly http; private readonly turnClient; private readonly options; private readonly baseUrl; private readonly headersFactory; getComponentCapabilities(): Observable; previewPage(request: PageBuilderAgenticAuthoringPromptRequest): Observable; resolveIntent(request: PageBuilderAgenticAuthoringIntentResolutionRequest): Observable; searchResourceCandidates(request: PageBuilderAgenticAuthoringResourceCandidatesRequest): Observable; streamTurn(request: PageBuilderAgenticAuthoringTurnStreamRequest): Observable; applyPage(request: PageBuilderApplyRequest): Observable; private buildHeaderRecord; private buildHeaders; private toTurnStreamEvent; private toTurnStreamError; private toRecord; private streamStartTimeoutMs; private streamTurnTimeoutMs; private streamResultFallbackMs; private streamSilenceStatusMs; private streamLifecycleStatusEvent; private requestTimeoutMs; private streamConnectionError; private formatEtag; private normalizeIntentResolutionResult; private normalizeStringList; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } type UiCompositionPlanInputSource = 'event' | 'payload' | 'state' | 'context' | 'constant'; type UiCompositionPlanComponentPortEndpoint = { kind: 'component-port'; widget: string; port: string; direction: 'input' | 'output'; nestedPath?: ComponentPortPathSegment[]; }; type UiCompositionPlanStateEndpoint = { kind: 'state'; path: string; layer?: 'values' | 'derived' | 'transient'; }; type UiCompositionPlanGlobalActionEndpoint = { kind: 'global-action'; actionId: string; payload?: unknown; payloadExpr?: string; meta?: Record; }; type UiCompositionPlanSourceEndpoint = UiCompositionPlanComponentPortEndpoint | UiCompositionPlanStateEndpoint; type UiCompositionPlanTargetEndpoint = UiCompositionPlanSourceEndpoint | UiCompositionPlanGlobalActionEndpoint; type UiCompositionPlanEndpoint = UiCompositionPlanTargetEndpoint; type UiCompositionPlanTransform = { kind: 'pick-path'; id: string; path: string; inputSource?: UiCompositionPlanInputSource; } | { kind: 'constant'; id: string; value: unknown; } | { kind: 'query-context'; id: string; field: string; operator?: string; valueVar?: string; inputSource?: UiCompositionPlanInputSource; } | { kind: 'template'; id: string; template: unknown; inputSource?: UiCompositionPlanInputSource; }; interface UiCompositionPlanWidget { key: string; componentId: string; role?: string; shell?: WidgetInstance['shell']; inputs?: Record; outputs?: Record; bindingOrder?: string[]; } interface UiCompositionPlanBinding { id: string; from: UiCompositionPlanSourceEndpoint; to: UiCompositionPlanTargetEndpoint; intent: CompositionLink['intent']; condition?: unknown; transform?: UiCompositionPlanTransform; policy?: CompositionLink['policy']; metadata?: Record; } type UiCompositionPlanSelectionSyncMapping = string | { path: string; inputSource?: UiCompositionPlanInputSource; condition?: unknown; }; /** * Semantic authoring shorthand for projecting the same selection emitted by one * or more component outputs into page state. The compiler expands this shape * into explicit canonical composition links before preview or persistence. */ interface UiCompositionPlanSelectionSync { id: string; intent: 'selection-sync'; sources: UiCompositionPlanComponentPortEndpoint[]; target: UiCompositionPlanStateEndpoint; mapping: Record; policy?: CompositionLink['policy']; metadata?: Record; } type UiCompositionPlanContextValue = { kind: 'constant'; value: unknown; } | { kind: 'state'; path: string; layer?: 'values' | 'derived' | 'transient'; condition?: unknown; /** Explicit value materialized before the first state propagation. */ initial?: unknown; }; interface UiCompositionPlanContextScopeTarget { widget: string; nestedPath?: ComponentPortPathSegment[]; inherit?: string[]; } /** * Groups reusable parent/resource context for one or more component targets. * Constants and explicit state initial values become widget inputs, while * state values become canonical links during compilation. No hidden runtime * inheritance remains in the executable page. */ interface UiCompositionPlanContextScope { id: string; context: Record; targets: UiCompositionPlanContextScopeTarget[]; policy?: CompositionLink['policy']; metadata?: Record; } interface UiCompositionPlan { version: '1.0'; kind: 'praxis.ui-composition-plan'; /** Page-owned business copy compiled verbatim into WidgetPageDefinition.i18n. */ i18n?: WidgetPageDefinition['i18n']; /** Explicit page-wide context compiled into WidgetPageDefinition.context. */ context?: WidgetPageDefinition['context']; /** Canonical responsive grid layout compiled into WidgetPageDefinition.layout. */ layout?: WidgetPageDefinition['layout']; layoutPreset?: string; layoutPresetOptions?: Record; canvas?: WidgetPageCanvasLayout; deviceLayouts?: WidgetPageDeviceLayouts; grouping?: WidgetPageGroupingDefinition[]; slotAssignments?: WidgetPageSlotAssignments; state?: WidgetPageStateInput; themePreset?: string; widgets: UiCompositionPlanWidget[]; selectionSyncs?: UiCompositionPlanSelectionSync[]; contextScopes?: UiCompositionPlanContextScope[]; bindings?: UiCompositionPlanBinding[]; /** Non-executable authoring and resolution evidence; never copied into WidgetPageDefinition. */ diagnostics?: Record; } interface UiCompositionPlanTemplateRef { registryKey: string; configSha256: string; } /** Compact intermediate authoring input. It is never a runtime persistence shape. */ interface UiCompositionPlanTemplateReference { version: '1.0'; kind: 'praxis.ui-composition-plan'; templateRef: UiCompositionPlanTemplateRef; overrides?: Readonly>; } interface UiCompositionPlanTemplateRevision { version?: number; etag?: string; configSha256: string; } /** Exact template body and revision evidence supplied by the governed backend. */ interface UiCompositionPlanTemplateMaterialization { registryKey: string; revision: UiCompositionPlanTemplateRevision; authoringPlan: UiCompositionPlan; } type UiCompositionPlanAuthoringInput = UiCompositionPlan | UiCompositionPlanTemplateReference; type UiCompositionPlanTemplateResolutionResult = { valid: true; referenced: boolean; plan: UiCompositionPlan; diagnostics: UiCompositionPlanDiagnostic[]; } | { valid: false; referenced: true; plan: null; diagnostics: UiCompositionPlanDiagnostic[]; }; interface UiCompositionPlanDiagnostic { code: string; message: string; path?: string; } type UiCompositionPlanCompileResult = { valid: true; page: WidgetPageDefinition; diagnostics: UiCompositionPlanDiagnostic[]; } | { valid: false; page: null; diagnostics: UiCompositionPlanDiagnostic[]; }; /** * Pure, fail-closed normalization for an exact template reference. * * The function performs no HTTP, registry search or template selection. The governed backend must * supply the exact materialization and its revision evidence before the existing compiler runs. */ declare function resolveUiCompositionPlanTemplate(input: UiCompositionPlanAuthoringInput, materialization?: UiCompositionPlanTemplateMaterialization): UiCompositionPlanTemplateResolutionResult; declare function compileUiCompositionPlan(plan: UiCompositionPlan): UiCompositionPlanCompileResult; declare function validateUiCompositionPlan(plan: UiCompositionPlan): UiCompositionPlanDiagnostic[]; type LegacyLayoutOptions = { cols?: number; rowHeight?: number; gap?: number; }; type PageBuilderLayoutOptions = Partial; type PageBuilderConfig = { page?: BuilderPageDefinition; context?: Record | null; enableCustomization?: boolean; showSettingsButton?: boolean; strictValidation?: boolean; layoutOptions?: PageBuilderLayoutOptions; pageIdentity?: PageIdentity; }; type BuilderWidgetInstance = WidgetInstance; type BuilderCanvasItem = { col: number; row: number; colSpan: number; rowSpan: number; }; type BuilderCanvasLayout = { mode: 'grid'; columns: number; rowUnit?: string; gap?: string; autoRows?: 'fixed' | 'content'; collisionPolicy?: 'block' | 'swap'; items: Record; }; type BuilderPageDefinition = Omit & { widgets: BuilderWidgetInstance[]; canvas?: BuilderCanvasLayout; state?: WidgetPageStateInput; composition?: { links: BuilderCompositionLink[]; }; }; type BuilderCompositionLink = CompositionLink; declare function registerWidgetAiCatalog(widgetId: string, catalog: AiCapabilityCatalog): void; declare function registerWidgetAiCatalogs(entries: Record): void; declare function clearWidgetAiCatalogs(): void; /** * Retrieves the CapabilityCatalog for a given widget ID. */ declare function getWidgetAiCapabilities(widgetId: string): AiCapabilityCatalog | undefined; /** * Aggregates macro page builder capabilities with specific micro capabilities * of the widgets present in the page configuration. */ declare function getPageAiCatalog(pageConfig?: PageBuilderConfig): AiCapabilityCatalog; declare const PAGE_BUILDER_WIDGET_AI_CATALOGS: InjectionToken>; declare function providePageBuilderWidgetAiCatalogs(): Provider; declare const PAGE_BUILDER_COMPONENT_CONTEXT_PACK: ComponentContextPack; declare const PRAXIS_PAGE_BUILDER_AUTHORING_MANIFEST: ComponentAuthoringManifest; type PageBuilderGovernedContinuationFamily = 'shared-rule' | 'project-knowledge'; type PageBuilderGovernedContinuationActionKind = 'open_definition' | 'simulate' | 'approve' | 'reject' | 'publish' | 'materialize' | 'validate_enforcement' | 'create_knowledge_change_set' | 'validate_knowledge_change_set' | 'apply_knowledge_change_set' | 'open_timeline'; type PageBuilderGovernedContinuationBlockedReason = 'busy' | 'missing_handoff' | 'missing_authoring_target' | 'missing_definition' | 'definition_already_available' | 'missing_materialization' | 'missing_project_knowledge_audit' | 'missing_project_knowledge_candidate' | 'change_set_already_available' | 'missing_change_set' | 'validation_required' | 'validation_already_valid' | 'approval_required' | 'already_applied' | 'timeline_unavailable' | 'timeline_contract_unwired'; interface PageBuilderGovernedContinuationTarget { artifactType: 'domain-rule-definition' | 'domain-knowledge-change-set' | 'materialization' | 'timeline'; id?: string | null; key?: string | null; resourceKey?: string | null; contextKey?: string | null; } interface PageBuilderGovernedContinuationAction { kind: PageBuilderGovernedContinuationActionKind; family: PageBuilderGovernedContinuationFamily; enabled: boolean; blockedReason?: PageBuilderGovernedContinuationBlockedReason; labelKey: string; labelFallback: string; descriptionKey: string; descriptionFallback: string; target?: PageBuilderGovernedContinuationTarget; } interface AgenticAuthoringQuickReply extends PraxisAssistantShellQuickReply { kind: string; } type AgenticAuthoringPanelLayout = PraxisAssistantShellLayout; type PageBuilderPremiumReadinessSeverity = 'info' | 'warning' | 'error'; type PageBuilderPremiumReadinessActionKind = 'open-page-settings' | 'open-connections' | 'open-widget-config' | 'focus-widget'; interface PageBuilderPremiumReadinessAction { kind: PageBuilderPremiumReadinessActionKind; label: string; widgetKey?: string; } interface PageBuilderPremiumReadinessIssue { id: string; severity: PageBuilderPremiumReadinessSeverity; title: string; description: string; action?: PageBuilderPremiumReadinessAction; } type SharedRuleCockpitAction = 'definition' | 'simulation' | 'approve' | 'activate' | 'publication' | 'materializations' | 'timeline' | 'enforcement'; type ProjectKnowledgeCockpitAction = 'change-set' | 'validate' | 'approve' | 'reject' | 'apply' | 'readback'; interface SharedRuleEnforcementSummary { status: 'ready' | 'waiting' | 'unavailable'; targetLayers: string[]; targetArtifacts: string[]; projections: SharedRuleEnforcementProjection[]; appliedCount: number; pendingCount: number; sourceHashes: string[]; } interface SharedRuleEnforcementProjection { targetLayer: string; targetLayerLabel: string; status: 'ready' | 'waiting'; targetArtifact: string; sourceHash: string | null; } interface PageBuilderAgenticAuthoringSharedRuleHandoff { endpoint: string; flowId: 'shared_rule_authoring'; intakeEndpoint?: string | null; intakeId?: string | null; intakeStatus?: string | null; nextEndpoint?: string | null; ruleDefinitionId?: string | null; ruleKey?: string | null; recommendedRuleType?: string | null; targetLayer?: string | null; sourcePrompt: string; assistantMessage: string; resourcePath?: string | null; resourceKey?: string | null; contextKey?: string | null; routeGateStatus?: string | null; routeFailureCode?: string | null; routeDecisionSource?: string | null; previewDisposition?: string | null; } declare class DynamicPageBuilderComponent implements OnChanges, OnDestroy { private dialog; private settingsPanel; private readonly i18n; private readonly injector; private readonly hostElement; private readonly componentMetadata; private readonly agenticAuthoring; private readonly agenticTurnOrchestrator; private readonly assistantSessions; private readonly observabilityDashboard; private readonly runtimeObservationRegistry; private readonly agenticAuthoringOptions; runtime?: DynamicWidgetPageComponent; page?: WidgetPageDefinition | string; context?: Record | null; strictValidation: boolean; autoPersist: boolean; enableCustomization: boolean; showSettingsButton: boolean; pageIdentity?: PageIdentity; componentInstanceId?: string; pageEditorComponent: Type | undefined; componentPaletteAllowedWidgetIds: string[] | null; componentPaletteAllowedWidgetTags: string[] | null; componentPaletteAllowedPresetIds: string[] | null; enableAgenticAuthoring: boolean; agenticAuthoringProvider?: string; agenticAuthoringModel?: string; agenticAuthoringApiKey?: string; agenticAuthoringComponentId?: string; agenticAuthoringScope: 'user' | 'tenant'; agenticAuthoringEtag?: string; agenticAuthoringIncludeLlmDiagnostics: boolean; agenticAuthoringEnableStreaming: boolean; agenticAuthoringVoiceInputMode: PraxisAssistantVoiceInputMode; agenticAuthoringContextHints?: Record | null; showPageLifecycleActions: boolean; canDeleteSavedPage: boolean; pageLifecycleBusy: boolean; pageLifecycleResetRevision: number | string | null; pageChange: EventEmitter; widgetEvent: EventEmitter; pageSaveRequested: EventEmitter; agenticAuthoringApplied: EventEmitter; agenticAuthoringSharedRuleHandoff: EventEmitter; pageRestart: EventEmitter; savedPageDeleteRequested: EventEmitter; readonly currentPage: _angular_core.WritableSignal; readonly hasPageWidgets: _angular_core.Signal; readonly hasRecommendedConnectionSuggestion: _angular_core.Signal; readonly premiumReadinessIssues: _angular_core.Signal; readonly connectionsViewerOpen: _angular_core.WritableSignal; readonly agenticAuthoringOpen: _angular_core.WritableSignal; readonly agenticAuthoringPrompt: _angular_core.WritableSignal; readonly agenticAuthoringBusy: _angular_core.WritableSignal; private readonly agenticAuthoringTerminalState; readonly agenticAuthoringStatus: _angular_core.WritableSignal; readonly agenticAuthoringError: _angular_core.WritableSignal; readonly agenticAuthoringPreviewResult: _angular_core.WritableSignal; private readonly agenticAuthoringMaterializationPending; readonly agenticAuthoringSemanticDecision: _angular_core.WritableSignal; private readonly agenticAuthoringSemanticResourcePresentationLabel; private readonly agenticAuthoringTurnResultRef; private readonly agenticAuthoringApplyTarget; readonly agenticAuthoringCanApply: _angular_core.WritableSignal; readonly agenticAuthoringLastEtag: _angular_core.WritableSignal; readonly agenticAuthoringConversation: _angular_core.WritableSignal; readonly agenticAuthoringQuickReplies: _angular_core.WritableSignal; readonly agenticAuthoringAttachments: _angular_core.WritableSignal; readonly agenticAuthoringSharedRuleHandoffState: _angular_core.WritableSignal; readonly sharedRuleCockpitBusyAction: _angular_core.WritableSignal; readonly sharedRuleCockpitError: _angular_core.WritableSignal; readonly sharedRuleCockpitDefinition: _angular_core.WritableSignal; readonly sharedRuleCockpitSimulation: _angular_core.WritableSignal; readonly sharedRuleCockpitTimeline: _angular_core.WritableSignal; readonly sharedRuleCockpitPublication: _angular_core.WritableSignal; readonly sharedRuleCockpitMaterializations: _angular_core.WritableSignal; readonly sharedRuleCockpitEnforcement: _angular_core.WritableSignal; readonly projectKnowledgeCockpitBusyAction: _angular_core.WritableSignal; readonly projectKnowledgeCockpitError: _angular_core.WritableSignal; readonly projectKnowledgeCockpitChangeSet: _angular_core.WritableSignal; readonly projectKnowledgeCockpitValidation: _angular_core.WritableSignal; readonly projectKnowledgeCockpitTimeline: _angular_core.WritableSignal; readonly agenticAuthoringLlmDiagnostics: _angular_core.WritableSignal | null>; readonly agenticTurnHealth: _angular_core.WritableSignal; readonly agenticAuthoringLlmDiagnosticsCollapsed: _angular_core.WritableSignal; readonly sharedRuleCockpitCollapsed: _angular_core.WritableSignal; readonly projectKnowledgeCockpitCollapsed: _angular_core.WritableSignal; readonly agenticAuthoringEditingMessageId: _angular_core.WritableSignal; readonly selectedWidgetKey: _angular_core.WritableSignal; readonly agenticAuthoringWidgetContextKey: _angular_core.WritableSignal; readonly agenticAuthoringPanelLayout: _angular_core.WritableSignal; private previewMode; private runtimePreviewPageCache?; private runtimeAuthoringPageCache?; private agenticComponentCapabilities?; private agenticComponentCapabilitiesPromise?; private agenticTurnController?; private readonly agenticLocalPreviewHistory; private agenticLocalPreviewHistoryTruncated; private readonly agenticTurnCancel$; private agenticTurnRunId; private agenticAuthoringTurnInactivityTimeoutMs; private sharedRuleHandoffRevision; private agenticAuthoringPanelLayoutTouched; private readonly observabilityMetricsSubscription; constructor(dialog: MatDialog, settingsPanel: SettingsPanelBridge | null); ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; showSettings(): boolean; isPreviewMode(): boolean; runtimePage(): WidgetPageDefinition; builderModeLabel(): string; onRuntimePageChange(next: WidgetPageDefinition): void; onRuntimeWidgetEvent(event: WidgetEventEnvelope): void; onConnectionEditorPageChange(next: WidgetPageDefinition): void; onRuntimeWidgetSelectionChange(widgetKey: string | null): void; togglePreview(): void; toggleAgenticAuthoringLlmDiagnostics(): void; agenticAuthoringDiagnosticsAvailable(): boolean; agenticTurnHealthBuckets(): Array<{ dimension: 'provider' | 'model'; bucket: ObservabilityAgenticTurnMetricBucket; }>; formatAgenticMetricPercent(rate: number): string; formatAgenticDuration(durationMs: number): string; private emptyAgenticTurnHealth; toggleSharedRuleCockpit(): void; toggleProjectKnowledgeCockpit(): void; toggleConnectionsViewer(): void; connectionsToggleLabel(): string; onAddComponent(): void; addWidget(selection: string | ComponentPaletteSelection): void; private layoutHintsFor; openPageSettings(): void; saveCurrentPage(): void; canSaveCurrentPage(): boolean; private evaluatePremiumReadiness; runPremiumReadinessAction(issue: PageBuilderPremiumReadinessIssue): void; private isPremiumReadinessCandidate; private hasDisconnectedOperationalWidgets; private latePrimaryChartKey; private usesLocalAnalyticData; private isAnalyticWidget; applyConfigFromAdapter(config: PageBuilderConfig): void; private createAdapterHost; toggleAgenticAuthoring(): void; openAgenticAuthoring(): void; openAgenticAuthoringForWidget(widgetKey: string): void; openAgenticAuthoringFromSession(session: PraxisAssistantSessionSnapshot): void; minimizeAgenticAuthoring(): void; onAgenticAuthoringLayoutChange(layout: AgenticAuthoringPanelLayout): void; agenticAuthoringReviewRailActive(): boolean; showAgenticAuthoringPanel(): boolean; showAgenticAuthoringDock(): boolean; agenticAuthoringMinimized(): boolean; agenticAuthoringToggleLabel(): string; agenticAuthoringHeaderTitle(): string; agenticAuthoringHeaderSubtitle(): string; agenticAuthoringHeaderModeLabel(): string; agenticAuthoringShellLabels(): Partial; agenticAuthoringRecommendedIntents(): readonly PraxisAssistantRecommendedIntent[]; private agenticAuthoringEmptyConversationMessage; private resolveAgenticAuthoredOpeningMessage; private isAgenticAuthoringPageBlank; private hasPendingAgenticPreview; agenticAuthoringSubmitAction(): PraxisAssistantShellAction; agenticAuthoringDockIcon(): string; agenticAuthoringDockBadge(): string; agenticAuthoringDockSummary(): string; agenticAuthoringShellState(): PraxisAssistantShellState; private hasAgenticAuthoringSession; private resetAgenticAuthoringSessionState; private syncAgenticAuthoringSession; private resolveAgenticAuthoringSessionId; private pageIdentityFingerprint; private truncateAgenticDockText; agenticAuthoringProjectKnowledgeAudit(): PageBuilderProjectKnowledgeAudit | null; canRunProjectKnowledgeChangeSet(): boolean; sharedRuleGovernedContinuationActions(): PageBuilderGovernedContinuationAction[]; projectKnowledgeGovernedContinuationActions(): PageBuilderGovernedContinuationAction[]; trackGovernedContinuationAction(_index: number, action: PageBuilderGovernedContinuationAction): string; trackSharedRuleEnforcementProjection(index: number, projection: SharedRuleEnforcementProjection): string; governedContinuationActionTestId(action: PageBuilderGovernedContinuationAction): string; governedContinuationActionTooltip(action: PageBuilderGovernedContinuationAction): string; projectKnowledgeTimelineItems(): RichTimelineItem[]; trackProjectKnowledgeTimelineItem(index: number, item: RichTimelineItem): string; runSharedRuleGovernedContinuationAction(action: PageBuilderGovernedContinuationAction): Promise; runProjectKnowledgeGovernedContinuationAction(action: PageBuilderGovernedContinuationAction): Promise; agenticAuthoringContextItems(): PraxisAssistantShellContextItem[]; private agenticAuthoringSemanticDecisionContextItems; private shouldHideSemanticDecisionContextItems; private humanizeAgenticResourcePath; private agenticSemanticResourceLabel; private humanizeAgenticDecisionSummary; private humanizeAgenticOperationKind; private humanizeAgenticArtifactKind; private humanizeAgenticChangeKind; private humanizeAgenticDecisionEvidence; private humanizeAgenticToken; previewAgenticAuthoring(): Promise; submitAgenticRecommendedIntent(intent: PraxisAssistantRecommendedIntent): Promise; submitAgenticQuickReply(reply: PraxisAssistantShellQuickReply): Promise; private isGovernedReviewRepairQuickReply; private agenticQuickReplyVisiblePrompt; private agenticQuickReplySubmittedPrompt; private agenticQuickReplyClarificationConfirmationPrompt; private isHumanSafeResourceQuickReplyPrompt; private isGenericDataSourceQuickReplyPrompt; private isGenericGovernedConfirmationQuickReplyPrompt; private agenticQuickReplyGovernedConfirmationPrompt; private isResourceQuickReply; private isContextualPreviewActionQuickReply; private isDashboardQualityQuickReplyText; private isGovernedConfirmationQuickReply; private isConfirmationQuickReply; private hasResourceContextHint; private describeResourceContext; attachAgenticContext(): void; addAgenticAttachments(attachments: readonly PraxisAssistantShellAttachment[]): void; removeAgenticAttachment(attachment: PraxisAssistantShellAttachment): void; editAgenticMessage(message: PraxisAssistantShellMessage): void; resendAgenticMessage(message: PraxisAssistantShellMessage): Promise; retryAgenticAuthoring(): Promise; updateAgenticAuthoringPrompt(prompt: string): void; cancelAgenticAuthoring(): Promise; persistAgenticAuthoring(): Promise; ensureSharedRuleDefinition(): Promise; simulateSharedRule(): Promise; transitionSharedRuleDefinition(status: 'approved' | 'active'): Promise; publishSharedRule(): Promise; openSharedRuleEnforcementValidation(): Promise; runProjectKnowledgeChangeSetLifecycle(): Promise; createProjectKnowledgeCockpitChangeSet(): Promise; validateProjectKnowledgeCockpitChangeSet(): Promise; approveProjectKnowledgeCockpitChangeSet(): Promise; rejectProjectKnowledgeCockpitChangeSet(): Promise; applyProjectKnowledgeCockpitChangeSet(): Promise; private refreshSharedRuleTimeline; private resolveDomainRuleService; private resolveDomainKnowledgeService; private createProjectKnowledgeChangeSet; private getProjectKnowledgeChangeSet; private validateProjectKnowledgeChangeSet; private getProjectKnowledgeChangeSetTimeline; private transitionProjectKnowledgeChangeSetStatus; private applyProjectKnowledgeChangeSet; private refreshProjectKnowledgeTimeline; private createSharedRuleDefinition; private simulateSharedRuleDefinition; private transitionSharedRuleDefinitionStatus; private publishSharedRuleDefinition; private listSharedRuleMaterializations; private getSharedRuleDefinitionTimeline; private resolveSharedRuleDefinitionId; private runSharedRuleCockpitAction; private clearSharedRuleCockpitState; private runProjectKnowledgeCockpitAction; private clearProjectKnowledgeCockpitState; private resolveProjectKnowledgeEvidenceCandidate; private createProjectKnowledgeChangeSetRequest; private slugifyProjectKnowledgeKey; private governedContinuationActionDomKey; private updateSharedRuleHandoff; private promoteSharedRuleHandoffFromQuickReply; private resolveSharedRuleQuickReplyRuleType; private resolveSharedRuleQuickReplyTargetLayer; private resolveSharedRuleKey; private resolveSharedRuleResourceKey; private resolveSharedRuleContextKey; private deriveResourceKeyFromPath; private deriveContextKeyFromPath; private resolveSharedRuleType; private normalizeSharedRuleType; private inferSharedRuleTypeFromHumanIntent; private summarizeSharedRuleEnforcement; private isAppliedSharedRuleProjection; private formatSharedRuleTargetLayer; private loadAgenticComponentCapabilities; private collectRuntimeComponentObservationsForAgenticTurn; private resolveSelectedComponentAuthoringContext; private isComponentConfigEditorContextResult; private ensureAgenticTurnController; private applyAgenticPreviewLocally; private agenticLocalUndoAction; private executeAgenticClientAction; private canUndoAgenticLocalPreview; private undoAgenticLocalPreview; private recordAgenticLocalPreview; private clearAgenticLocalPreviewHistory; private agenticCurrentPageFingerprint; private enterPreviewMode; private toPresentationRuntimePage; private toAuthoringRuntimePage; /** * Removes authoring-only inputs from a page emitted by the embedded runtime. * * The runtime must receive `enableCustomization=true` so nested components can * expose their editors, but that projection is not part of the authored page. * Restore the canonical value by widget key before publishing `pageChange` so * a presentation-only edit cannot accidentally persist authoring chrome. */ private toCanonicalPageFromAuthoringRuntime; private toPresentationRuntimeWidget; private applyAgenticTurnState; private primeSharedRuleHandoff; private moveAgenticAuthoringPanelToReviewSidecar; private resolveAgenticSharedRuleHandoff; private resolveAgenticSharedRuleAssistantMessage; private resolveSharedRuleHandoffRuleType; private sameSharedRuleHandoff; private sameSharedRuleHandoffIdentity; private enrichSharedRuleHandoffFromIntake; private resolveSharedRuleHeaders; private consumeAgenticTurn; private beginAgenticTurn; private cancelActiveAgenticTurn; private invalidateAgenticTerminalAuthorization; private isCurrentAgenticTurn; private createAgenticTurnTimeoutState; private isAgenticTurnTimeoutState; private isAgenticTurnTerminalState; agenticAuthoringDiagnosticsTop(): number; agenticAuthoringLlmDiagnosticsText(): string; private resolveAgenticLlmDiagnostics; private resolveAgenticSemanticDecision; private resolveAgenticSemanticResourcePresentationLabel; private resolveAgenticTurnResultRef; private resolveAgenticApplyTarget; private matchesCurrentAgenticApplyTarget; private normalizeAgenticEtag; private currentAgenticAuthoringEtag; private cloneAgenticContextHints; private resolveGovernedDomainContextSummary; private shouldShowGovernedDomainContext; private humanizeGovernedDomainContextResolutionStatus; private trimmedString; private toRecord; private resolvePreviewCompiledFormPatch; focusCanvasWidget(widgetKey: string): void; private openWidgetConfiguration; private selectInsertedWidget; private deferInsertedWidgetFocus; private scrollInsertedWidgetIntoView; private escapeAttributeValue; private parsePage; private clonePage; private clearSelectedWidgetIfMissing; private defaultInputsFor; private applyWidgetIdentityDefaults; private resolveAgenticComponentId; private resolveSelectedWidgetKey; private resolveWidgetByKey; private resolveSelectedWidgetLabel; private describeSelectedWidgetContext; private resolveWidgetDisplayName; private formatAgenticFailures; private describeAgenticPreviewFailure; private describeAgenticPreviewStatus; private isAgenticTableContractError; private appendAgenticMessage; private describeAgenticError; private looksLikeHtmlErrorResponse; private cloneValue; tx(key: string, fallback: string): string; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** Metadata for Praxis Page Builder component */ declare const PRAXIS_PAGE_BUILDER_COMPONENT_METADATA: ComponentDocMeta; /** Provider para auto-registrar metadados do componente Page Builder. */ declare function providePraxisPageBuilderMetadata(): Provider; export { ComponentPaletteDialogComponent, ConfirmDialogComponent, ConnectionEditorComponent, DynamicPageBuilderComponent, DynamicPageConfigEditorComponent, FloatingToolbarComponent, PAGE_BUILDER_AGENTIC_AUTHORING_OPTIONS, PAGE_BUILDER_AI_CAPABILITIES, PAGE_BUILDER_COMPONENT_CONTEXT_PACK, PAGE_BUILDER_WIDGET_AI_CATALOGS, PLACEHOLDER, PRAXIS_PAGE_BUILDER_AUTHORING_MANIFEST, PRAXIS_PAGE_BUILDER_COMPONENT_METADATA, PageBuilderAgenticAuthoringService, PageConfigEditorComponent, TileToolbarComponent, WidgetShellEditorComponent, clearWidgetAiCatalogs, compileUiCompositionPlan, getPageAiCatalog, getWidgetAiCapabilities, providePageBuilderWidgetAiCatalogs, providePraxisPageBuilderMetadata, registerWidgetAiCatalog, registerWidgetAiCatalogs, resolveUiCompositionPlanTemplate, validateUiCompositionPlan }; export type { Capability, CapabilityCatalog, CapabilityCategory, ComponentPaletteData, ComponentPaletteSelection, ConfirmDialogData, PageBuilderAgenticAuthoringAttachmentSummary, PageBuilderAgenticAuthoringCandidate, PageBuilderAgenticAuthoringComponentCapabilitiesResult, PageBuilderAgenticAuthoringComponentCapability, PageBuilderAgenticAuthoringComponentCapabilityCatalog, PageBuilderAgenticAuthoringComponentCapabilityExample, PageBuilderAgenticAuthoringComponentFieldAlias, PageBuilderAgenticAuthoringConversationMessage, PageBuilderAgenticAuthoringGateResult, PageBuilderAgenticAuthoringIntentResolutionRequest, PageBuilderAgenticAuthoringIntentResolutionResult, PageBuilderAgenticAuthoringOptions, PageBuilderAgenticAuthoringPendingClarification, PageBuilderAgenticAuthoringPromptRequest, PageBuilderAgenticAuthoringProvider, PageBuilderAgenticAuthoringQuickReply, PageBuilderAgenticAuthoringResourceCandidatesRequest, PageBuilderAgenticAuthoringResourceCandidatesResult, PageBuilderAgenticAuthoringSharedRuleHandoff, PageBuilderAgenticAuthoringTarget, PageBuilderAgenticAuthoringTurnStreamConnectionError, PageBuilderAgenticAuthoringTurnStreamEvent, PageBuilderAgenticAuthoringTurnStreamRequest, PageBuilderAgenticAuthoringTurnStreamStartResponse, PageBuilderApplyRequest, PageBuilderApplyResult, PageBuilderCompiledFormPatch, PageBuilderMinimalFormPlanResult, PageBuilderPreviewDiagnostics, PageBuilderPreviewResult, PageBuilderProjectKnowledgeAudit, UiCompositionPlan, UiCompositionPlanAuthoringInput, UiCompositionPlanBinding, UiCompositionPlanCompileResult, UiCompositionPlanComponentPortEndpoint, UiCompositionPlanContextScope, UiCompositionPlanContextScopeTarget, UiCompositionPlanContextValue, UiCompositionPlanDiagnostic, UiCompositionPlanEndpoint, UiCompositionPlanGlobalActionEndpoint, UiCompositionPlanInputSource, UiCompositionPlanSelectionSync, UiCompositionPlanSelectionSyncMapping, UiCompositionPlanSourceEndpoint, UiCompositionPlanStateEndpoint, UiCompositionPlanTargetEndpoint, UiCompositionPlanTemplateMaterialization, UiCompositionPlanTemplateRef, UiCompositionPlanTemplateReference, UiCompositionPlanTemplateResolutionResult, UiCompositionPlanTemplateRevision, UiCompositionPlanTransform, UiCompositionPlanWidget, ValueKind };