import { z } from 'zod';
import type { EmbedContent, OssEmbed } from '../../types/auth';
import type { Dashboard } from '../../types/dashboard';
import type { OrganizationColorPalette } from '../../types/organization';
/** @deprecated Use OssEmbed instead */
export type Embed = OssEmbed;
export type DecodedEmbed = Omit<Embed, 'encodedSecret'> & {
    encodedSecret: undefined;
    secret: string;
};
export type CreateEmbedRequestBody = {
    dashboardUuids?: string[];
    chartUuids?: string[];
};
export type UpdateEmbed = {
    dashboardUuids: string[];
    allowAllDashboards: boolean;
    chartUuids?: string[];
    allowAllCharts?: boolean;
};
export type GetEmbedDashboardRequest = {
    paletteUuid?: string;
};
export declare enum FilterInteractivityValues {
    some = "some",
    all = "all",
    none = "none"
}
export declare const FilterInteractivityValuesSchema: z.ZodEnum<[FilterInteractivityValues.some, FilterInteractivityValues.all, FilterInteractivityValues.none]>;
export declare const DashboardFilterInteractivityOptionsSchema: z.ZodObject<{
    enabled: z.ZodUnion<[z.ZodBoolean, z.ZodEnum<[FilterInteractivityValues.some, FilterInteractivityValues.all, FilterInteractivityValues.none]>]>;
    allowedFilters: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>;
    hidden: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    enabled: boolean | FilterInteractivityValues;
    hidden?: boolean | undefined;
    allowedFilters?: string[] | null | undefined;
}, {
    enabled: boolean | FilterInteractivityValues;
    hidden?: boolean | undefined;
    allowedFilters?: string[] | null | undefined;
}>;
export type DashboardFilterInteractivityOptions = z.infer<typeof DashboardFilterInteractivityOptionsSchema>;
export declare const ParameterInteractivityOptionsSchema: z.ZodObject<{
    enabled: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
    enabled: boolean;
}, {
    enabled: boolean;
}>;
export type ParameterInteractivityOptions = z.infer<typeof ParameterInteractivityOptionsSchema>;
export declare const InteractivityOptionsSchema: z.ZodObject<{
    dashboardFiltersInteractivity: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodUnion<[z.ZodBoolean, z.ZodEnum<[FilterInteractivityValues.some, FilterInteractivityValues.all, FilterInteractivityValues.none]>]>;
        allowedFilters: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>;
        hidden: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        enabled: boolean | FilterInteractivityValues;
        hidden?: boolean | undefined;
        allowedFilters?: string[] | null | undefined;
    }, {
        enabled: boolean | FilterInteractivityValues;
        hidden?: boolean | undefined;
        allowedFilters?: string[] | null | undefined;
    }>>;
    parameterInteractivity: z.ZodOptional<z.ZodObject<{
        enabled: z.ZodBoolean;
    }, "strip", z.ZodTypeAny, {
        enabled: boolean;
    }, {
        enabled: boolean;
    }>>;
    canExportCsv: z.ZodOptional<z.ZodBoolean>;
    canExportImages: z.ZodOptional<z.ZodBoolean>;
    canExportPagePdf: z.ZodOptional<z.ZodBoolean>;
    canDateZoom: z.ZodOptional<z.ZodBoolean>;
    canExplore: z.ZodOptional<z.ZodBoolean>;
    canViewUnderlyingData: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    dashboardFiltersInteractivity?: {
        enabled: boolean | FilterInteractivityValues;
        hidden?: boolean | undefined;
        allowedFilters?: string[] | null | undefined;
    } | undefined;
    parameterInteractivity?: {
        enabled: boolean;
    } | undefined;
    canExportCsv?: boolean | undefined;
    canExportImages?: boolean | undefined;
    canExportPagePdf?: boolean | undefined;
    canDateZoom?: boolean | undefined;
    canExplore?: boolean | undefined;
    canViewUnderlyingData?: boolean | undefined;
}, {
    dashboardFiltersInteractivity?: {
        enabled: boolean | FilterInteractivityValues;
        hidden?: boolean | undefined;
        allowedFilters?: string[] | null | undefined;
    } | undefined;
    parameterInteractivity?: {
        enabled: boolean;
    } | undefined;
    canExportCsv?: boolean | undefined;
    canExportImages?: boolean | undefined;
    canExportPagePdf?: boolean | undefined;
    canDateZoom?: boolean | undefined;
    canExplore?: boolean | undefined;
    canViewUnderlyingData?: boolean | undefined;
}>;
export type InteractivityOptions = z.infer<typeof InteractivityOptionsSchema>;
export type EmbedSelectedColorPalette = Pick<OrganizationColorPalette, 'colors' | 'darkColors'>;
export type EmbedDashboard = Dashboard & InteractivityOptions & {
    selectedPalette?: EmbedSelectedColorPalette | null;
};
export declare const ChartInteractivityOptionsSchema: z.ZodObject<{
    scopes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    canExportCsv: z.ZodOptional<z.ZodBoolean>;
    canExportImages: z.ZodOptional<z.ZodBoolean>;
    canViewUnderlyingData: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    canExportCsv?: boolean | undefined;
    canExportImages?: boolean | undefined;
    canViewUnderlyingData?: boolean | undefined;
    scopes?: string[] | undefined;
}, {
    canExportCsv?: boolean | undefined;
    canExportImages?: boolean | undefined;
    canViewUnderlyingData?: boolean | undefined;
    scopes?: string[] | undefined;
}>;
export type ChartInteractivityOptions = z.infer<typeof ChartInteractivityOptionsSchema>;
export declare const EmbedJwtSchema: z.ZodObject<{
    userAttributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
    user: z.ZodOptional<z.ZodObject<{
        externalId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        email?: string | null | undefined;
        externalId?: string | null | undefined;
    }, {
        email?: string | null | undefined;
        externalId?: string | null | undefined;
    }>>;
    content: z.ZodUnion<[z.ZodObject<{
        type: z.ZodLiteral<"dashboard">;
        projectUuid: z.ZodOptional<z.ZodString>;
        dashboardUuid: z.ZodString;
        isPreview: z.ZodOptional<z.ZodBoolean>;
    } & {
        dashboardFiltersInteractivity: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodUnion<[z.ZodBoolean, z.ZodEnum<[FilterInteractivityValues.some, FilterInteractivityValues.all, FilterInteractivityValues.none]>]>;
            allowedFilters: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>;
            hidden: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            enabled: boolean | FilterInteractivityValues;
            hidden?: boolean | undefined;
            allowedFilters?: string[] | null | undefined;
        }, {
            enabled: boolean | FilterInteractivityValues;
            hidden?: boolean | undefined;
            allowedFilters?: string[] | null | undefined;
        }>>;
        parameterInteractivity: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodBoolean;
        }, "strip", z.ZodTypeAny, {
            enabled: boolean;
        }, {
            enabled: boolean;
        }>>;
        canExportCsv: z.ZodOptional<z.ZodBoolean>;
        canExportImages: z.ZodOptional<z.ZodBoolean>;
        canExportPagePdf: z.ZodOptional<z.ZodBoolean>;
        canDateZoom: z.ZodOptional<z.ZodBoolean>;
        canExplore: z.ZodOptional<z.ZodBoolean>;
        canViewUnderlyingData: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        type: "dashboard";
        dashboardUuid: string;
        projectUuid?: string | undefined;
        dashboardFiltersInteractivity?: {
            enabled: boolean | FilterInteractivityValues;
            hidden?: boolean | undefined;
            allowedFilters?: string[] | null | undefined;
        } | undefined;
        parameterInteractivity?: {
            enabled: boolean;
        } | undefined;
        canExportCsv?: boolean | undefined;
        canExportImages?: boolean | undefined;
        canExportPagePdf?: boolean | undefined;
        canDateZoom?: boolean | undefined;
        canExplore?: boolean | undefined;
        canViewUnderlyingData?: boolean | undefined;
        isPreview?: boolean | undefined;
    }, {
        type: "dashboard";
        dashboardUuid: string;
        projectUuid?: string | undefined;
        dashboardFiltersInteractivity?: {
            enabled: boolean | FilterInteractivityValues;
            hidden?: boolean | undefined;
            allowedFilters?: string[] | null | undefined;
        } | undefined;
        parameterInteractivity?: {
            enabled: boolean;
        } | undefined;
        canExportCsv?: boolean | undefined;
        canExportImages?: boolean | undefined;
        canExportPagePdf?: boolean | undefined;
        canDateZoom?: boolean | undefined;
        canExplore?: boolean | undefined;
        canViewUnderlyingData?: boolean | undefined;
        isPreview?: boolean | undefined;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"dashboard">;
        projectUuid: z.ZodOptional<z.ZodString>;
        dashboardSlug: z.ZodString;
        isPreview: z.ZodOptional<z.ZodBoolean>;
    } & {
        dashboardFiltersInteractivity: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodUnion<[z.ZodBoolean, z.ZodEnum<[FilterInteractivityValues.some, FilterInteractivityValues.all, FilterInteractivityValues.none]>]>;
            allowedFilters: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>;
            hidden: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            enabled: boolean | FilterInteractivityValues;
            hidden?: boolean | undefined;
            allowedFilters?: string[] | null | undefined;
        }, {
            enabled: boolean | FilterInteractivityValues;
            hidden?: boolean | undefined;
            allowedFilters?: string[] | null | undefined;
        }>>;
        parameterInteractivity: z.ZodOptional<z.ZodObject<{
            enabled: z.ZodBoolean;
        }, "strip", z.ZodTypeAny, {
            enabled: boolean;
        }, {
            enabled: boolean;
        }>>;
        canExportCsv: z.ZodOptional<z.ZodBoolean>;
        canExportImages: z.ZodOptional<z.ZodBoolean>;
        canExportPagePdf: z.ZodOptional<z.ZodBoolean>;
        canDateZoom: z.ZodOptional<z.ZodBoolean>;
        canExplore: z.ZodOptional<z.ZodBoolean>;
        canViewUnderlyingData: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        type: "dashboard";
        dashboardSlug: string;
        projectUuid?: string | undefined;
        dashboardFiltersInteractivity?: {
            enabled: boolean | FilterInteractivityValues;
            hidden?: boolean | undefined;
            allowedFilters?: string[] | null | undefined;
        } | undefined;
        parameterInteractivity?: {
            enabled: boolean;
        } | undefined;
        canExportCsv?: boolean | undefined;
        canExportImages?: boolean | undefined;
        canExportPagePdf?: boolean | undefined;
        canDateZoom?: boolean | undefined;
        canExplore?: boolean | undefined;
        canViewUnderlyingData?: boolean | undefined;
        isPreview?: boolean | undefined;
    }, {
        type: "dashboard";
        dashboardSlug: string;
        projectUuid?: string | undefined;
        dashboardFiltersInteractivity?: {
            enabled: boolean | FilterInteractivityValues;
            hidden?: boolean | undefined;
            allowedFilters?: string[] | null | undefined;
        } | undefined;
        parameterInteractivity?: {
            enabled: boolean;
        } | undefined;
        canExportCsv?: boolean | undefined;
        canExportImages?: boolean | undefined;
        canExportPagePdf?: boolean | undefined;
        canDateZoom?: boolean | undefined;
        canExplore?: boolean | undefined;
        canViewUnderlyingData?: boolean | undefined;
        isPreview?: boolean | undefined;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"chart">;
        projectUuid: z.ZodOptional<z.ZodString>;
        contentId: z.ZodString;
        isPreview: z.ZodOptional<z.ZodBoolean>;
    } & {
        scopes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        canExportCsv: z.ZodOptional<z.ZodBoolean>;
        canExportImages: z.ZodOptional<z.ZodBoolean>;
        canViewUnderlyingData: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        type: "chart";
        contentId: string;
        projectUuid?: string | undefined;
        canExportCsv?: boolean | undefined;
        canExportImages?: boolean | undefined;
        canViewUnderlyingData?: boolean | undefined;
        scopes?: string[] | undefined;
        isPreview?: boolean | undefined;
    }, {
        type: "chart";
        contentId: string;
        projectUuid?: string | undefined;
        canExportCsv?: boolean | undefined;
        canExportImages?: boolean | undefined;
        canViewUnderlyingData?: boolean | undefined;
        scopes?: string[] | undefined;
        isPreview?: boolean | undefined;
    }>]>;
    iat: z.ZodOptional<z.ZodNumber>;
    exp: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    content: {
        type: "dashboard";
        dashboardUuid: string;
        projectUuid?: string | undefined;
        dashboardFiltersInteractivity?: {
            enabled: boolean | FilterInteractivityValues;
            hidden?: boolean | undefined;
            allowedFilters?: string[] | null | undefined;
        } | undefined;
        parameterInteractivity?: {
            enabled: boolean;
        } | undefined;
        canExportCsv?: boolean | undefined;
        canExportImages?: boolean | undefined;
        canExportPagePdf?: boolean | undefined;
        canDateZoom?: boolean | undefined;
        canExplore?: boolean | undefined;
        canViewUnderlyingData?: boolean | undefined;
        isPreview?: boolean | undefined;
    } | {
        type: "dashboard";
        dashboardSlug: string;
        projectUuid?: string | undefined;
        dashboardFiltersInteractivity?: {
            enabled: boolean | FilterInteractivityValues;
            hidden?: boolean | undefined;
            allowedFilters?: string[] | null | undefined;
        } | undefined;
        parameterInteractivity?: {
            enabled: boolean;
        } | undefined;
        canExportCsv?: boolean | undefined;
        canExportImages?: boolean | undefined;
        canExportPagePdf?: boolean | undefined;
        canDateZoom?: boolean | undefined;
        canExplore?: boolean | undefined;
        canViewUnderlyingData?: boolean | undefined;
        isPreview?: boolean | undefined;
    } | {
        type: "chart";
        contentId: string;
        projectUuid?: string | undefined;
        canExportCsv?: boolean | undefined;
        canExportImages?: boolean | undefined;
        canViewUnderlyingData?: boolean | undefined;
        scopes?: string[] | undefined;
        isPreview?: boolean | undefined;
    };
    exp: number;
    user?: {
        email?: string | null | undefined;
        externalId?: string | null | undefined;
    } | undefined;
    userAttributes?: Record<string, unknown> | undefined;
    iat?: number | undefined;
}, {
    content: {
        type: "dashboard";
        dashboardUuid: string;
        projectUuid?: string | undefined;
        dashboardFiltersInteractivity?: {
            enabled: boolean | FilterInteractivityValues;
            hidden?: boolean | undefined;
            allowedFilters?: string[] | null | undefined;
        } | undefined;
        parameterInteractivity?: {
            enabled: boolean;
        } | undefined;
        canExportCsv?: boolean | undefined;
        canExportImages?: boolean | undefined;
        canExportPagePdf?: boolean | undefined;
        canDateZoom?: boolean | undefined;
        canExplore?: boolean | undefined;
        canViewUnderlyingData?: boolean | undefined;
        isPreview?: boolean | undefined;
    } | {
        type: "dashboard";
        dashboardSlug: string;
        projectUuid?: string | undefined;
        dashboardFiltersInteractivity?: {
            enabled: boolean | FilterInteractivityValues;
            hidden?: boolean | undefined;
            allowedFilters?: string[] | null | undefined;
        } | undefined;
        parameterInteractivity?: {
            enabled: boolean;
        } | undefined;
        canExportCsv?: boolean | undefined;
        canExportImages?: boolean | undefined;
        canExportPagePdf?: boolean | undefined;
        canDateZoom?: boolean | undefined;
        canExplore?: boolean | undefined;
        canViewUnderlyingData?: boolean | undefined;
        isPreview?: boolean | undefined;
    } | {
        type: "chart";
        contentId: string;
        projectUuid?: string | undefined;
        canExportCsv?: boolean | undefined;
        canExportImages?: boolean | undefined;
        canViewUnderlyingData?: boolean | undefined;
        scopes?: string[] | undefined;
        isPreview?: boolean | undefined;
    };
    exp: number;
    user?: {
        email?: string | null | undefined;
        externalId?: string | null | undefined;
    } | undefined;
    userAttributes?: Record<string, unknown> | undefined;
    iat?: number | undefined;
}>;
export type EmbedJwt = z.infer<typeof EmbedJwtSchema>;
export type CommonEmbedJwtContent = {
    type: 'dashboard';
    projectUuid?: string;
    isPreview?: boolean;
    dashboardFiltersInteractivity?: {
        enabled: FilterInteractivityValues | boolean;
        allowedFilters?: string[] | null;
        hidden?: boolean;
    };
    parameterInteractivity?: {
        enabled: boolean;
    };
    canExportCsv?: boolean;
    canExportImages?: boolean;
    canDateZoom?: boolean;
    canExportPagePdf?: boolean;
    canExplore?: boolean;
    canViewUnderlyingData?: boolean;
};
type CommonChartEmbedJwtContent = {
    type: 'chart';
    projectUuid?: string;
    isPreview?: boolean;
    scopes?: string[];
    dashboardFiltersInteractivity?: undefined;
    parameterInteractivity?: undefined;
    canExportCsv?: boolean;
    canExportImages?: boolean;
    canViewUnderlyingData?: boolean;
};
type EmbedJwtContentDashboardUuid = CommonEmbedJwtContent & {
    dashboardUuid: string;
};
type EmbedJwtContentDashboardSlug = CommonEmbedJwtContent & {
    dashboardSlug: string;
};
export type EmbedJwtContentChart = CommonChartEmbedJwtContent & {
    contentId: string;
};
export type CreateEmbedJwt = {
    content: EmbedJwtContentDashboardUuid | EmbedJwtContentDashboardSlug | EmbedJwtContentChart;
    userAttributes?: {
        [key: string]: string;
    };
    user?: {
        email?: string;
        externalId?: string;
    };
    expiresIn?: string;
    iat?: number;
    exp?: number;
};
export declare function isDashboardUuidContent(content: CreateEmbedJwt['content']): content is EmbedJwtContentDashboardUuid;
export declare function isDashboardSlugContent(content: CreateEmbedJwt['content']): content is EmbedJwtContentDashboardSlug;
export declare function isChartContent(content: CreateEmbedJwt['content']): content is EmbedJwtContentChart;
export declare function isDashboardContent(content: CreateEmbedJwt['content'] | EmbedContent): content is EmbedJwtContentDashboardUuid | EmbedJwtContentDashboardSlug;
export type EmbedUrl = {
    url: string;
};
export declare function getFilterInteractivityValue(enabled: DashboardFilterInteractivityOptions['enabled']): FilterInteractivityValues;
export declare function isFilterInteractivityEnabled(filterInteractivityOptions?: DashboardFilterInteractivityOptions): boolean | null | undefined;
export declare function isParameterInteractivityEnabled(parameterInteractivityOptions?: ParameterInteractivityOptions): boolean;
export {};
//# sourceMappingURL=index.d.ts.map