export declare type LoginResponse = { access_token: string; refresh_token: string; }; export declare type Resource = { type: string; id: string; }; export declare type RLS = { clause: string; }; export declare type User = { username: string; first_name: string; last_name: string; }; export declare type GetGuestTokenRequest = { access_token: string; user: User; resources: Resource[]; rls: RLS[]; }; export declare type Credentials = { username: string; password: string; }; export declare type Embedded = { uuid: string; }; export declare class Dashboard { info: DashboardInfo; constructor(dashboardInfo: DashboardInfo); getJsonMetadata(): JsonMetadata; } export declare type ChartDataQueryFilter = { col: string; op: string; val: string; }; export declare type ChartDataFormData = { adhoc_filters?: any[]; datasource?: string; defaultToFirstItem?: boolean; enableEmptyFilter?: boolean; extra_filters?: any[]; extra_form_data?: any; force?: boolean; groupby?: string[]; inView?: boolean; inverseSelection?: boolean; metrics?: string[]; multiSelect?: boolean; result_format?: string; result_type?: string; row_limit?: number; searchAllOptions?: boolean; showSearch?: boolean; sortAscending?: boolean; type?: string; url_params?: any; viz_type?: string; }; export declare type ChartDataQueryItem = { annotation_layers?: any[]; applied_time_extras?: any; columns?: string[]; custom_form_data?: any; custom_params?: any; extras?: { having?: string; where?: string; }; filters?: ChartDataQueryFilter[]; groupby?: any[]; metrics?: string[]; order_desc?: boolean; orderby?: [any[]]; row_limit?: number; timeseries_limit?: number; url_params?: any; }; export declare type ChartDataQuery = { datasource: { id: number; type: string; }; force: boolean; form_data?: ChartDataFormData; queries?: ChartDataQueryItem[]; result_format?: string; result_type?: string; }; export declare type ChartData = { cache_key?: string; cached_dttm?: string; cache_timeout?: number; query?: string; status?: string; stacktrace?: string; rowcount?: number; from_dttm?: string; to_dttm?: string; label_map?: { [key: string]: string[]; }; colnames?: string[]; indexnames?: string[]; coltypes?: string[]; data?: any[]; }; export declare type DashboardInfo = { certified_details?: string; certified_by?: string; changed_by?: User; changed_by_name?: string; changed_by_url?: string; changed_on?: string; changed_on_delta_humanized?: string; charts?: string[]; css?: string; dashboard_title: string; id: number; is_managed_externally?: boolean; json_metadata: string; owners?: User[]; position_json?: string; published?: boolean; roles?: string[]; slug?: string; thumbnail_url?: string; url: string; }; export declare type NativeFilterConfiguration = { cascadeParentIds?: string[]; controlValues?: { defaultToFirstItem?: boolean; enableEmptyFilter?: boolean; inverseSelection?: boolean; multiSelect?: boolean; searchAllOptions?: boolean; }; defaultDataMask: { extraFormData: { [key: string]: any; }; filterState: { [key: string]: any; }; ownState: { [key: string]: any; }; }; description: string; filterType: string; id: string; name: string; scope: { excluded: string[]; rootPath: string[]; }; targets: [{ column: { name: string; }; datasetId: number; }]; type: string; title: string; }; export declare type JsonMetadata = { refresh_frequency?: number; show_native_filters?: boolean; native_filter_configuration?: NativeFilterConfiguration[]; }; export declare type AuthData = { accessToken: string; refreshToken: string; csrfToken: string; }; /** * Basic interface for a data provider. */ export interface DataProviderInterface { /** * Fetch guest token necessary to access the dashboard. * @param resource * @param rls */ fetchGuestToken(resource: Resource[], rls: RLS[]): Promise; /** * Fetch valid csrf token. */ fetchCsrfToken(): Promise; /** * Fetch dashboard info. * * @param id Id of the dashboard to fetch. * @param guestToken Guest token to access the dashboard. */ fetchDashboardInfo(guestToken: string, id: number): Promise; fetchChartData(guestToken: string, query: ChartDataQuery): Promise; }