export type InteractionType = 'semanticLayerQuery' | 'tableButton'; export type InteractionState = { [key: string]: unknown; bodyContent?: unknown; chartData?: unknown; chartDataFingerprint?: string; chartDataLength?: number; dataFingerprint?: string; dataLength?: number; error?: unknown; filterValue?: unknown; filters?: Record; footerContent?: unknown; headerContent?: unknown; isMissing?: unknown; pageNumber?: number; pageSize?: number; searchQuery?: string; searchValue?: string; sortColumn?: string | null; sortDirection?: 'asc' | 'desc' | null; summaryText?: unknown; }; export type QueryCacheEntry = { queryHeadings: string[]; sqlQuery: string | string[]; tableButtonExplanations: Array<{ action: string; buttonClassName?: string; buttonStyle?: Record; explanation: string; formFields?: Record; jsonBody?: unknown; operationDescription?: string; operationSummary?: string; requestUrl?: string; }>; timestamp: number; }; export type CacheKey = { componentId: string; interactionType: InteractionType; state: InteractionState; }; export declare function createCacheKey(componentId: string, interactionType: InteractionType, interactionState: InteractionState): string; export declare function createInteractionKey(interactionType: InteractionType, interactionState: InteractionState): string; export declare function extractInteractionState(componentProps: Record): InteractionState; export declare function areStatesEqual(state1: InteractionState, state2: InteractionState): boolean;