import { type ExecuteQueryParams } from '@sisense/sdk-ui-preact'; import type { MaybeRefOrWithRefs } from '../types'; /** * A Vue composable function `useExecuteQuery` for executing Sisense queries with flexible parameters. * It handles query execution, including loading, error, and success states, and enables dynamic query configuration * through reactive parameters. This composable is particularly useful for applications requiring data from Sisense * analytics, offering a reactive and declarative approach to data fetching and state management. * * @param {MaybeRefOrWithRefs} params - The parameters for the query, supporting reactive Vue refs. * Includes details such as `dataSource`, `dimensions`, `measures`, `filters`, and more, allowing for comprehensive * query configuration. The `filters` parameter supports dynamic filtering based on user interaction or other application * state changes. * * @example * How to use `useExecuteQuery` within a Vue component: * ```vue * * ``` * * The composable returns an object with the following reactive properties to manage the query state: * - `data`: The data returned from the query. It remains `undefined` until the query completes successfully. * - `isLoading`: Indicates if the query is in progress. * - `isError`: Indicates if an error occurred during query execution. * - `isSuccess`: Indicates if the query executed successfully without errors. * - `error`: Contains the error object if an error occurred during the query. * - `rowCount`: The total row count of the query result, ignoring the `count` and `offset` paging. * Populated only when `includeRowCount` is enabled in the params and the Sisense instance supports * the row count API (`@beta`); `undefined` otherwise. * * This composable facilitates integrating Sisense data fetching into Vue applications, enabling developers * to easily manage query states and dynamically adjust query parameters based on application needs. * @group Queries */ export declare const useExecuteQuery: (params: MaybeRefOrWithRefs) => { rowCount: import("vue").Ref; isLoading: import("vue").Ref; isError: import("vue").Ref; isSuccess: import("vue").Ref; error: import("vue").Ref; data: import("vue").Ref; status: import("vue").Ref<"loading">; } | { rowCount: import("vue").Ref; isLoading: import("vue").Ref; isError: import("vue").Ref; isSuccess: import("vue").Ref; error: import("vue").Ref; data: import("vue").Ref; status: import("vue").Ref<"error">; } | { rowCount: import("vue").Ref; isLoading: import("vue").Ref; isError: import("vue").Ref; isSuccess: import("vue").Ref; error: import("vue").Ref; data: import("vue").Ref; status: import("vue").Ref<"success">; };