drizzle-cube
Version:
Drizzle ORM-first semantic layer with Cube.js compatibility. Type-safe analytics and dashboards with SQL injection protection.
33 lines (32 loc) • 1.43 kB
TypeScript
import { MultiQueryValidationResult } from '../utils/multiQueryValidation';
import { CubeQuery, MultiQueryConfig, QueryMergeStrategy } from '../types';
import { AnalysisBuilderState } from '../components/AnalysisBuilder/types';
export interface UseAnalysisQueryBuilderResult {
/** Current query state (active query) */
queryState: AnalysisBuilderState;
/** All query states (for multi-query mode) */
queryStates: AnalysisBuilderState[];
/** Active query index */
activeQueryIndex: number;
/** Merge strategy for multi-query */
mergeStrategy: QueryMergeStrategy;
/** Whether in multi-query mode */
isMultiQueryMode: boolean;
/** Merge keys (computed from Q1 breakdowns) */
mergeKeys: string[] | undefined;
/** Current query as CubeQuery */
currentQuery: CubeQuery;
/** All queries as CubeQuery[] */
allQueries: CubeQuery[];
/** MultiQueryConfig (if in multi-query mode) */
multiQueryConfig: MultiQueryConfig | null;
/** Multi-query validation result */
multiQueryValidation: MultiQueryValidationResult | null;
/** Whether current query is valid */
isValidQuery: boolean | undefined;
setActiveQueryIndex: (index: number) => void;
setMergeStrategy: (strategy: QueryMergeStrategy) => void;
addQuery: () => void;
removeQuery: (index: number) => void;
}
export declare function useAnalysisQueryBuilder(): UseAnalysisQueryBuilderResult;