export interface CollectionResource { kind: 'collection'; id?: number; slug?: string; name: string; description?: string; parent?: string; } export interface NativeQuestionResource { kind: 'question'; id?: number; name: string; collection: string; database: string; type: 'native'; query: string; templateTags?: Record; display?: string; visualizationSettings?: Record; description?: string; cardType?: 'model' | 'question' | 'metric'; } export interface StructuredQuestionResource { kind: 'question'; id?: number; name: string; collection: string; database: string; type: 'structured'; query?: MBQLQuery; datasetQuery?: Record; display?: string; visualizationSettings?: Record; description?: string; cardType?: 'model' | 'question' | 'metric'; } export type QuestionResource = NativeQuestionResource | StructuredQuestionResource; export interface ParameterMapping { parameter_id: string; card_id: number | null; target: unknown[]; [key: string]: unknown; } export interface DashboardCardRef { question: string; questionId?: number; width: number; height: number; row: number; col: number; parameterMappings?: ParameterMapping[]; visualizationSettings?: Record; } export interface DashboardTextCard { text: string; width: number; height: number; row: number; col: number; parameterMappings?: ParameterMapping[]; } export interface DashboardVirtualCard { virtualCard: Record; width: number; height: number; row: number; col: number; visualizationSettings?: Record; parameterMappings?: ParameterMapping[]; } export interface DashboardParameter { name: string; slug: string; id: string; type: string; sectionId?: string; default?: unknown; [key: string]: unknown; } export interface DashboardResource { kind: 'dashboard'; id?: number; name: string; collection: string; description?: string; cards: (DashboardCardRef | DashboardTextCard | DashboardVirtualCard)[]; parameters?: DashboardParameter[]; } export interface SnippetResource { kind: 'snippet'; id?: number; name: string; description?: string; content: string; } export type Resource = CollectionResource | QuestionResource | DashboardResource | SnippetResource; export interface MBQLQuery { 'source-table': string; aggregation?: unknown[][]; breakout?: unknown[][]; filter?: unknown[]; 'order-by'?: unknown[][]; limit?: number; } export interface TemplateTags { name: string; 'display-name': string; type: 'text' | 'number' | 'date' | 'dimension'; default?: string; } export declare const collection: (c: Omit) => CollectionResource; export declare const nativeQuestion: (q: Omit) => NativeQuestionResource; export declare const structuredQuestion: (q: Omit) => StructuredQuestionResource; export declare const dashboard: (d: Omit) => DashboardResource; export declare const snippet: (s: Omit) => SnippetResource; export interface MetabaseSnippet { id: number; name: string; description: string | null; content: string; collection_id: number | null; archived: boolean; } export interface MetabaseCollection { id: number; name: string; description: string | null; slug: string; parent_id: number | null; location: string; archived: boolean; } export interface MetabaseCard { id: number; name: string; description: string | null; collection_id: number | null; database_id: number; type?: 'model' | 'question' | 'metric'; dataset_query: { type: 'native' | 'query'; database: number; native?: { query: string; 'template-tags'?: Record; }; query?: Record; }; display: string; visualization_settings: Record; archived: boolean; } export interface MetabaseDashboard { id: number; name: string; description: string | null; collection_id: number | null; parameters: DashboardParameter[]; dashcards: MetabaseDashcard[]; archived: boolean; } export interface MetabaseDashcard { id: number; card_id: number | null; card?: MetabaseCard; row: number; col: number; size_x: number; size_y: number; visualization_settings: Record; parameter_mappings?: ParameterMapping[]; series?: unknown[]; } export interface MetabaseDatabase { id: number; name: string; engine: string; tables?: MetabaseTable[]; } export interface MetabaseTable { id: number; name: string; db_id: number; fields?: MetabaseField[]; } export interface MetabaseField { id: number; name: string; table_id: number; } export interface StateEntry { kind: Resource['kind']; name: string; metabaseId: number; collection?: string; } export type StateFile = StateEntry[]; //# sourceMappingURL=types.d.ts.map