import type { PromotionAction } from '../promotion';
export declare const CONTENT_AS_CODE_VERSION: 1;
export declare const CONTENT_AS_CODE_VERSIONS: {
    readonly chart: 1;
    readonly dashboard: 1;
    readonly sql_chart: 1;
    readonly space: 1;
    readonly virtual_view: 1;
    readonly scheduled_delivery: 1;
    readonly alert: 1;
    readonly google_sheets_sync: 1;
    readonly ai_agent: 1;
    readonly custom_role: 1;
    readonly user: 1;
    readonly group: 1;
    readonly external_connection: 1;
};
export type ContentAsCodeScope = 'project' | 'organization';
export type ContentAsCodeResourceKind = 'chart' | 'dashboard' | 'sql_chart' | 'space' | 'virtual_view' | 'scheduled_delivery' | 'alert' | 'google_sheets_sync' | 'ai_agent' | 'custom_role' | 'user' | 'group' | 'external_connection';
export type ContentAsCodeIdentity = {
    resource: ContentAsCodeResourceKind;
    value: string;
};
export type ContentAsCodeDiagnostic = {
    identity: ContentAsCodeIdentity | null;
    reason: string;
};
export type ContentAsCodeListResults<Key extends string, Document, Extra extends object = Record<never, never>> = {
    [Property in Key]: Document[];
} & Extra;
export type ApiContentAsCodeListResponse<Results extends object> = {
    status: 'ok';
    results: Results;
};
export type ContentAsCodeUpsertAction = PromotionAction.CREATE | PromotionAction.UPDATE | PromotionAction.NO_CHANGES;
export type ApiContentAsCodeUpsertResponse<Extra extends object = Record<never, never>> = {
    status: 'ok';
    results: {
        action: ContentAsCodeUpsertAction;
    } & Extra;
};
//# sourceMappingURL=base.d.ts.map