import { z } from 'zod';
import { type DashboardAsCode } from '../../types/coder';
import { DashboardTileTypes } from '../../types/dashboard';
import { AsCodeInternalization } from './abstract';
declare const dashboardAsCodeSchema: z.ZodObject<{
    name: z.ZodString;
    description: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
    tiles: z.ZodArray<z.ZodUnion<[z.ZodObject<{
        type: z.ZodUnion<[z.ZodLiteral<DashboardTileTypes.SAVED_CHART>, z.ZodLiteral<DashboardTileTypes.SQL_CHART>]>;
        properties: z.ZodObject<{
            title: z.ZodString;
            chartName: z.ZodDefault<z.ZodOptional<z.ZodString>>;
        }, "strip", z.ZodTypeAny, {
            title: string;
            chartName: string;
        }, {
            title: string;
            chartName?: string | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        type: DashboardTileTypes.SAVED_CHART | DashboardTileTypes.SQL_CHART;
        properties: {
            title: string;
            chartName: string;
        };
    }, {
        type: DashboardTileTypes.SAVED_CHART | DashboardTileTypes.SQL_CHART;
        properties: {
            title: string;
            chartName?: string | undefined;
        };
    }>, z.ZodObject<{
        type: z.ZodLiteral<DashboardTileTypes.MARKDOWN>;
        properties: z.ZodObject<{
            title: z.ZodString;
            content: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            content: string;
            title: string;
        }, {
            content: string;
            title: string;
        }>;
    }, "strip", z.ZodTypeAny, {
        type: DashboardTileTypes.MARKDOWN;
        properties: {
            content: string;
            title: string;
        };
    }, {
        type: DashboardTileTypes.MARKDOWN;
        properties: {
            content: string;
            title: string;
        };
    }>, z.ZodObject<{
        type: z.ZodLiteral<DashboardTileTypes.LOOM>;
        properties: z.ZodObject<{
            title: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            title: string;
        }, {
            title: string;
        }>;
    }, "strip", z.ZodTypeAny, {
        type: DashboardTileTypes.LOOM;
        properties: {
            title: string;
        };
    }, {
        type: DashboardTileTypes.LOOM;
        properties: {
            title: string;
        };
    }>, z.ZodObject<{
        type: z.ZodLiteral<DashboardTileTypes.HEADING>;
        properties: z.ZodObject<{
            text: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            text: string;
        }, {
            text: string;
        }>;
    }, "strip", z.ZodTypeAny, {
        type: DashboardTileTypes.HEADING;
        properties: {
            text: string;
        };
    }, {
        type: DashboardTileTypes.HEADING;
        properties: {
            text: string;
        };
    }>, z.ZodObject<{
        type: z.ZodLiteral<DashboardTileTypes.DATA_APP>;
        properties: z.ZodObject<{
            title: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            title: string;
        }, {
            title: string;
        }>;
    }, "strip", z.ZodTypeAny, {
        type: DashboardTileTypes.DATA_APP;
        properties: {
            title: string;
        };
    }, {
        type: DashboardTileTypes.DATA_APP;
        properties: {
            title: string;
        };
    }>]>, "many">;
}, "strip", z.ZodTypeAny, {
    name: string;
    tiles: ({
        type: DashboardTileTypes.SAVED_CHART | DashboardTileTypes.SQL_CHART;
        properties: {
            title: string;
            chartName: string;
        };
    } | {
        type: DashboardTileTypes.MARKDOWN;
        properties: {
            content: string;
            title: string;
        };
    } | {
        type: DashboardTileTypes.LOOM;
        properties: {
            title: string;
        };
    } | {
        type: DashboardTileTypes.HEADING;
        properties: {
            text: string;
        };
    } | {
        type: DashboardTileTypes.DATA_APP;
        properties: {
            title: string;
        };
    })[];
    description?: string | undefined;
}, {
    name: string;
    tiles: ({
        type: DashboardTileTypes.SAVED_CHART | DashboardTileTypes.SQL_CHART;
        properties: {
            title: string;
            chartName?: string | undefined;
        };
    } | {
        type: DashboardTileTypes.MARKDOWN;
        properties: {
            content: string;
            title: string;
        };
    } | {
        type: DashboardTileTypes.LOOM;
        properties: {
            title: string;
        };
    } | {
        type: DashboardTileTypes.HEADING;
        properties: {
            text: string;
        };
    } | {
        type: DashboardTileTypes.DATA_APP;
        properties: {
            title: string;
        };
    })[];
    description?: string | null | undefined;
}>;
export declare class DashboardAsCodeInternalization extends AsCodeInternalization<{
    type: 'dashboard';
    content: DashboardAsCode;
}, typeof dashboardAsCodeSchema> {
    protected schema: z.ZodObject<{
        name: z.ZodString;
        description: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
        tiles: z.ZodArray<z.ZodUnion<[z.ZodObject<{
            type: z.ZodUnion<[z.ZodLiteral<DashboardTileTypes.SAVED_CHART>, z.ZodLiteral<DashboardTileTypes.SQL_CHART>]>;
            properties: z.ZodObject<{
                title: z.ZodString;
                chartName: z.ZodDefault<z.ZodOptional<z.ZodString>>;
            }, "strip", z.ZodTypeAny, {
                title: string;
                chartName: string;
            }, {
                title: string;
                chartName?: string | undefined;
            }>;
        }, "strip", z.ZodTypeAny, {
            type: DashboardTileTypes.SAVED_CHART | DashboardTileTypes.SQL_CHART;
            properties: {
                title: string;
                chartName: string;
            };
        }, {
            type: DashboardTileTypes.SAVED_CHART | DashboardTileTypes.SQL_CHART;
            properties: {
                title: string;
                chartName?: string | undefined;
            };
        }>, z.ZodObject<{
            type: z.ZodLiteral<DashboardTileTypes.MARKDOWN>;
            properties: z.ZodObject<{
                title: z.ZodString;
                content: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                content: string;
                title: string;
            }, {
                content: string;
                title: string;
            }>;
        }, "strip", z.ZodTypeAny, {
            type: DashboardTileTypes.MARKDOWN;
            properties: {
                content: string;
                title: string;
            };
        }, {
            type: DashboardTileTypes.MARKDOWN;
            properties: {
                content: string;
                title: string;
            };
        }>, z.ZodObject<{
            type: z.ZodLiteral<DashboardTileTypes.LOOM>;
            properties: z.ZodObject<{
                title: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                title: string;
            }, {
                title: string;
            }>;
        }, "strip", z.ZodTypeAny, {
            type: DashboardTileTypes.LOOM;
            properties: {
                title: string;
            };
        }, {
            type: DashboardTileTypes.LOOM;
            properties: {
                title: string;
            };
        }>, z.ZodObject<{
            type: z.ZodLiteral<DashboardTileTypes.HEADING>;
            properties: z.ZodObject<{
                text: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                text: string;
            }, {
                text: string;
            }>;
        }, "strip", z.ZodTypeAny, {
            type: DashboardTileTypes.HEADING;
            properties: {
                text: string;
            };
        }, {
            type: DashboardTileTypes.HEADING;
            properties: {
                text: string;
            };
        }>, z.ZodObject<{
            type: z.ZodLiteral<DashboardTileTypes.DATA_APP>;
            properties: z.ZodObject<{
                title: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                title: string;
            }, {
                title: string;
            }>;
        }, "strip", z.ZodTypeAny, {
            type: DashboardTileTypes.DATA_APP;
            properties: {
                title: string;
            };
        }, {
            type: DashboardTileTypes.DATA_APP;
            properties: {
                title: string;
            };
        }>]>, "many">;
    }, "strip", z.ZodTypeAny, {
        name: string;
        tiles: ({
            type: DashboardTileTypes.SAVED_CHART | DashboardTileTypes.SQL_CHART;
            properties: {
                title: string;
                chartName: string;
            };
        } | {
            type: DashboardTileTypes.MARKDOWN;
            properties: {
                content: string;
                title: string;
            };
        } | {
            type: DashboardTileTypes.LOOM;
            properties: {
                title: string;
            };
        } | {
            type: DashboardTileTypes.HEADING;
            properties: {
                text: string;
            };
        } | {
            type: DashboardTileTypes.DATA_APP;
            properties: {
                title: string;
            };
        })[];
        description?: string | undefined;
    }, {
        name: string;
        tiles: ({
            type: DashboardTileTypes.SAVED_CHART | DashboardTileTypes.SQL_CHART;
            properties: {
                title: string;
                chartName?: string | undefined;
            };
        } | {
            type: DashboardTileTypes.MARKDOWN;
            properties: {
                content: string;
                title: string;
            };
        } | {
            type: DashboardTileTypes.LOOM;
            properties: {
                title: string;
            };
        } | {
            type: DashboardTileTypes.HEADING;
            properties: {
                text: string;
            };
        } | {
            type: DashboardTileTypes.DATA_APP;
            properties: {
                title: string;
            };
        })[];
        description?: string | null | undefined;
    }>;
    constructor(schema?: z.ZodObject<{
        name: z.ZodString;
        description: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | undefined, string | null | undefined>;
        tiles: z.ZodArray<z.ZodUnion<[z.ZodObject<{
            type: z.ZodUnion<[z.ZodLiteral<DashboardTileTypes.SAVED_CHART>, z.ZodLiteral<DashboardTileTypes.SQL_CHART>]>;
            properties: z.ZodObject<{
                title: z.ZodString;
                chartName: z.ZodDefault<z.ZodOptional<z.ZodString>>;
            }, "strip", z.ZodTypeAny, {
                title: string;
                chartName: string;
            }, {
                title: string;
                chartName?: string | undefined;
            }>;
        }, "strip", z.ZodTypeAny, {
            type: DashboardTileTypes.SAVED_CHART | DashboardTileTypes.SQL_CHART;
            properties: {
                title: string;
                chartName: string;
            };
        }, {
            type: DashboardTileTypes.SAVED_CHART | DashboardTileTypes.SQL_CHART;
            properties: {
                title: string;
                chartName?: string | undefined;
            };
        }>, z.ZodObject<{
            type: z.ZodLiteral<DashboardTileTypes.MARKDOWN>;
            properties: z.ZodObject<{
                title: z.ZodString;
                content: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                content: string;
                title: string;
            }, {
                content: string;
                title: string;
            }>;
        }, "strip", z.ZodTypeAny, {
            type: DashboardTileTypes.MARKDOWN;
            properties: {
                content: string;
                title: string;
            };
        }, {
            type: DashboardTileTypes.MARKDOWN;
            properties: {
                content: string;
                title: string;
            };
        }>, z.ZodObject<{
            type: z.ZodLiteral<DashboardTileTypes.LOOM>;
            properties: z.ZodObject<{
                title: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                title: string;
            }, {
                title: string;
            }>;
        }, "strip", z.ZodTypeAny, {
            type: DashboardTileTypes.LOOM;
            properties: {
                title: string;
            };
        }, {
            type: DashboardTileTypes.LOOM;
            properties: {
                title: string;
            };
        }>, z.ZodObject<{
            type: z.ZodLiteral<DashboardTileTypes.HEADING>;
            properties: z.ZodObject<{
                text: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                text: string;
            }, {
                text: string;
            }>;
        }, "strip", z.ZodTypeAny, {
            type: DashboardTileTypes.HEADING;
            properties: {
                text: string;
            };
        }, {
            type: DashboardTileTypes.HEADING;
            properties: {
                text: string;
            };
        }>, z.ZodObject<{
            type: z.ZodLiteral<DashboardTileTypes.DATA_APP>;
            properties: z.ZodObject<{
                title: z.ZodString;
            }, "strip", z.ZodTypeAny, {
                title: string;
            }, {
                title: string;
            }>;
        }, "strip", z.ZodTypeAny, {
            type: DashboardTileTypes.DATA_APP;
            properties: {
                title: string;
            };
        }, {
            type: DashboardTileTypes.DATA_APP;
            properties: {
                title: string;
            };
        }>]>, "many">;
    }, "strip", z.ZodTypeAny, {
        name: string;
        tiles: ({
            type: DashboardTileTypes.SAVED_CHART | DashboardTileTypes.SQL_CHART;
            properties: {
                title: string;
                chartName: string;
            };
        } | {
            type: DashboardTileTypes.MARKDOWN;
            properties: {
                content: string;
                title: string;
            };
        } | {
            type: DashboardTileTypes.LOOM;
            properties: {
                title: string;
            };
        } | {
            type: DashboardTileTypes.HEADING;
            properties: {
                text: string;
            };
        } | {
            type: DashboardTileTypes.DATA_APP;
            properties: {
                title: string;
            };
        })[];
        description?: string | undefined;
    }, {
        name: string;
        tiles: ({
            type: DashboardTileTypes.SAVED_CHART | DashboardTileTypes.SQL_CHART;
            properties: {
                title: string;
                chartName?: string | undefined;
            };
        } | {
            type: DashboardTileTypes.MARKDOWN;
            properties: {
                content: string;
                title: string;
            };
        } | {
            type: DashboardTileTypes.LOOM;
            properties: {
                title: string;
            };
        } | {
            type: DashboardTileTypes.HEADING;
            properties: {
                text: string;
            };
        } | {
            type: DashboardTileTypes.DATA_APP;
            properties: {
                title: string;
            };
        })[];
        description?: string | null | undefined;
    }>);
    getLanguageMap(dashboardAsCode: DashboardAsCode): {
        dashboard: {
            [dashboardAsCode.slug]: {
                name?: string | undefined;
                description?: string | undefined;
                tiles?: ({
                    type: DashboardTileTypes.SAVED_CHART | DashboardTileTypes.SQL_CHART;
                    properties: {
                        title: string;
                        chartName: string;
                    };
                } | {
                    type: DashboardTileTypes.MARKDOWN;
                    properties: {
                        content: string;
                        title: string;
                    };
                } | {
                    type: DashboardTileTypes.LOOM;
                    properties: {
                        title: string;
                    };
                } | {
                    type: DashboardTileTypes.HEADING;
                    properties: {
                        text: string;
                    };
                } | {
                    type: DashboardTileTypes.DATA_APP;
                    properties: {
                        title: string;
                    };
                })[] | undefined;
            };
        };
    };
    merge(internalizationMap: ReturnType<this['getLanguageMap']>['dashboard'][string], content: DashboardAsCode): any;
}
export type DashboardAsCodeLanguageMap = ReturnType<DashboardAsCodeInternalization['getLanguageMap']>;
export {};
//# sourceMappingURL=dashboardAsCode.d.ts.map