import { type RedashSchemaResponse } from './schemaStream.js'; export interface RedashQuery { id: number; name: string; description: string; query: string; data_source_id: number; latest_query_data_id: number; is_archived: boolean; created_at: string; updated_at: string; runtime: number; options: any; visualizations: RedashVisualization[]; } export interface CreateQueryRequest { name: string; data_source_id: number; query: string; description?: string; options?: any; schedule?: any; tags?: string[]; } export interface UpdateQueryRequest { name?: string; data_source_id?: number; query?: string; description?: string; options?: any; schedule?: any; tags?: string[]; is_archived?: boolean; is_draft?: boolean; } export interface RedashVisualization { id: number; type: string; name: string; description: string; options: any; query_id: number; } export interface CreateVisualizationRequest { query_id: number; type: string; name: string; description?: string; options: any; } export interface UpdateVisualizationRequest { type?: string; name?: string; description?: string; options?: any; } export interface RedashQueryResult { id: number; query_id: number; data_source_id: number; query_hash: string; query: string; data: { columns: Array<{ name: string; type: string; friendly_name: string; }>; rows: Array>; }; runtime: number; retrieved_at: string; } export interface RedashDashboard { id: number; name: string; slug: string; tags: string[]; options?: any; is_archived: boolean; is_draft: boolean; created_at: string; updated_at: string; version: number; dashboard_filters_enabled: boolean; widgets: Array<{ id: number; visualization_id?: number; visualization?: { id: number; type: string; name: string; description: string; options: any; query_id: number; }; text?: string; width: number; options: any; dashboard_id: number; }>; } export interface CreateDashboardRequest { name: string; tags?: string[]; } export interface UpdateDashboardRequest { name?: string; tags?: string[]; is_archived?: boolean; is_draft?: boolean; dashboard_filters_enabled?: boolean; options?: any; } export interface RedashAlert { id: number; name: string; query_id: number; options: { column: string; op: string; value: number | string; custom_subject?: string; custom_body?: string; muted?: boolean; }; state: string; last_triggered_at: string | null; rearm: number | null; created_at: string; updated_at: string; } export interface CreateAlertRequest { name: string; query_id: number; options: { column: string; op: string; value: number | string; custom_subject?: string; custom_body?: string; }; rearm?: number | null; } export interface UpdateAlertRequest { name?: string; query_id?: number; options?: { column?: string; op?: string; value?: number | string; custom_subject?: string; custom_body?: string; }; rearm?: number | null; } export interface AlertSubscription { id: number; alert_id: number; user?: { id: number; name: string; email: string; }; destination?: { id: number; name: string; type: string; }; } export interface CreateAlertSubscriptionRequest { destination_id?: number; } export interface RedashWidget { id: number; dashboard_id: number; visualization_id?: number; visualization?: RedashVisualization; text?: string; width: number; options: any; } export interface CreateWidgetRequest { dashboard_id: number; visualization_id?: number; text?: string; width: number; options?: any; } export interface UpdateWidgetRequest { visualization_id?: number; text?: string; width?: number; options?: any; } export interface RedashQuerySnippet { id: number; trigger: string; description: string; snippet: string; created_at: string; updated_at: string; } export interface CreateQuerySnippetRequest { trigger: string; description?: string; snippet: string; } export interface UpdateQuerySnippetRequest { trigger?: string; description?: string; snippet?: string; } export interface RedashDestination { id: number; name: string; type: string; options: any; } export declare class RedashClient { private client; private baseUrl; private apiKey; private timeoutMs; private dataSourceTypes; private bigQueryLocations; constructor(); private parseExtraHeaders; getQueries(page?: number, pageSize?: number, q?: string): Promise<{ count: number; page: number; pageSize: number; results: RedashQuery[]; }>; getQuery(queryId: number): Promise; createQuery(queryData: CreateQueryRequest): Promise; updateQuery(queryId: number, queryData: UpdateQueryRequest): Promise; archiveQuery(queryId: number): Promise<{ success: boolean; }>; getDataSources(): Promise; executeQuery(queryId: number, parameters?: Record, maxAge?: number): Promise; private pollQueryResults; getDashboards(page?: number, pageSize?: number): Promise<{ count: number; page: number; pageSize: number; results: RedashDashboard[]; }>; getDashboard(dashboardId: number): Promise; getDashboardBySlug(slug: string): Promise; getVisualization(visualizationId: number): Promise; executeAdhocQuery(query: string, dataSourceId: number, applyAutoLimit?: boolean): Promise; createVisualization(data: CreateVisualizationRequest): Promise; updateVisualization(visualizationId: number, data: UpdateVisualizationRequest): Promise; deleteVisualization(visualizationId: number): Promise; getQueryResultsAsCsv(queryId: number, refresh?: boolean): Promise; getSchemaPage(dataSourceId: number, page?: number, pageSize?: number, search?: string): Promise; private getDataSourceType; private getBigQueryLocation; private getBigQuerySchemaPage; createDashboard(data: CreateDashboardRequest): Promise; updateDashboard(dashboardId: number, data: UpdateDashboardRequest): Promise; archiveDashboard(dashboardId: number): Promise<{ success: boolean; }>; forkDashboard(dashboardId: number): Promise; getPublicDashboard(token: string): Promise; shareDashboard(dashboardId: number): Promise<{ public_url: string; api_key: string; }>; unshareDashboard(dashboardId: number): Promise<{ success: boolean; }>; getMyDashboards(page?: number, pageSize?: number): Promise<{ count: number; page: number; pageSize: number; results: RedashDashboard[]; }>; getFavoriteDashboards(page?: number, pageSize?: number): Promise<{ count: number; page: number; pageSize: number; results: RedashDashboard[]; }>; addDashboardFavorite(dashboardId: number): Promise<{ success: boolean; }>; removeDashboardFavorite(dashboardId: number): Promise<{ success: boolean; }>; getDashboardTags(): Promise<{ tags: Array<{ name: string; count: number; }>; }>; getAlerts(): Promise; getAlert(alertId: number): Promise; createAlert(data: CreateAlertRequest): Promise; updateAlert(alertId: number, data: UpdateAlertRequest): Promise; deleteAlert(alertId: number): Promise<{ success: boolean; }>; muteAlert(alertId: number): Promise<{ success: boolean; }>; getAlertSubscriptions(alertId: number): Promise; addAlertSubscription(alertId: number, data?: CreateAlertSubscriptionRequest): Promise; removeAlertSubscription(alertId: number, subscriptionId: number): Promise<{ success: boolean; }>; forkQuery(queryId: number): Promise; getMyQueries(page?: number, pageSize?: number): Promise<{ count: number; page: number; pageSize: number; results: RedashQuery[]; }>; getRecentQueries(page?: number, pageSize?: number): Promise<{ count: number; page: number; pageSize: number; results: RedashQuery[]; }>; getQueryTags(): Promise<{ tags: Array<{ name: string; count: number; }>; }>; getFavoriteQueries(page?: number, pageSize?: number): Promise<{ count: number; page: number; pageSize: number; results: RedashQuery[]; }>; addQueryFavorite(queryId: number): Promise<{ success: boolean; }>; removeQueryFavorite(queryId: number): Promise<{ success: boolean; }>; getWidgets(): Promise; getWidget(widgetId: number): Promise; createWidget(data: CreateWidgetRequest): Promise; updateWidget(widgetId: number, data: UpdateWidgetRequest): Promise; deleteWidget(widgetId: number): Promise<{ success: boolean; }>; getQuerySnippets(): Promise; getQuerySnippet(snippetId: number): Promise; createQuerySnippet(data: CreateQuerySnippetRequest): Promise; updateQuerySnippet(snippetId: number, data: UpdateQuerySnippetRequest): Promise; deleteQuerySnippet(snippetId: number): Promise<{ success: boolean; }>; getDestinations(): Promise; } export declare function getRedashClient(): RedashClient;