import { type PartialDeep } from 'type-fest';
import type { ChartAsCodeLanguageMap, Dashboard, DashboardAsCodeLanguageMap, DashboardChartTileProperties, DashboardFilterRule, DashboardFilters, DashboardHeadingTileProperties, DashboardLoomTileProperties, DashboardMarkdownTileProperties, DashboardTile, PromotionChanges, SavedChart, SqlChart } from '..';
export declare const currentVersion = 1;
export type ChartAsCode = Pick<SavedChart, 'name' | 'description' | 'tableName' | 'metricQuery' | 'chartConfig' | 'tableConfig' | 'pivotConfig' | 'slug' | 'updatedAt'> & {
    dashboardSlug: string | undefined;
    version: number;
    spaceSlug: string;
    downloadedAt?: Date;
};
export type SqlChartAsCode = Pick<SqlChart, 'name' | 'description' | 'slug' | 'sql' | 'limit' | 'config' | 'chartKind'> & {
    version: number;
    spaceSlug: string;
    updatedAt: Date;
    downloadedAt?: Date;
};
export type ApiChartAsCodeListResponse = {
    status: 'ok';
    results: {
        charts: ChartAsCode[];
        languageMap: Array<PartialDeep<ChartAsCodeLanguageMap, {
            recurseIntoArrays: true;
        }> | undefined> | undefined;
        missingIds: string[];
        total: number;
        offset: number;
    };
};
export type ApiChartAsCodeUpsertResponse = {
    status: 'ok';
    results: PromotionChanges;
};
export type ApiSqlChartAsCodeUpsertResponse = {
    status: 'ok';
    results: PromotionChanges;
};
export type ApiSqlChartAsCodeListResponse = {
    status: 'ok';
    results: {
        sqlCharts: SqlChartAsCode[];
        missingIds: string[];
        total: number;
        offset: number;
    };
};
export type DashboardTileAsCode = Omit<DashboardTile, 'properties' | 'uuid'> & {
    uuid: DashboardTile['uuid'] | undefined;
    tileSlug: string | undefined;
    properties: Pick<DashboardChartTileProperties['properties'], 'title' | 'hideTitle' | 'chartSlug' | 'chartName'> | DashboardMarkdownTileProperties['properties'] | DashboardLoomTileProperties['properties'] | DashboardHeadingTileProperties['properties'];
};
export type DashboardTileWithSlug = DashboardTile & {
    tileSlug: string | undefined;
};
export type DashboardAsCode = Pick<Dashboard, 'name' | 'description' | 'updatedAt' | 'tabs' | 'slug'> & {
    tiles: DashboardTileAsCode[];
    version: number;
    spaceSlug: string;
    downloadedAt?: Date;
    filters: Omit<DashboardFilters, 'dimensions'> & {
        dimensions: Omit<DashboardFilterRule, 'id'>[];
    };
};
export type ApiDashboardAsCodeListResponse = {
    status: 'ok';
    results: {
        dashboards: DashboardAsCode[];
        languageMap: Array<PartialDeep<DashboardAsCodeLanguageMap, {
            recurseIntoArrays: true;
        }> | undefined> | undefined;
        missingIds: string[];
        total: number;
        offset: number;
    };
};
export type ApiDashboardAsCodeUpsertResponse = {
    status: 'ok';
    results: PromotionChanges;
};
//# sourceMappingURL=coder.d.ts.map