import { CliFs } from "@tsed/cli-core";
import type { SourceFile } from "ts-morph";
import type { RenderDataContext } from "../interfaces/index.js";
import type { DefineTemplateOptions } from "../utils/defineTemplate.js";
export type TemplateRenderOptions = {
    name?: string;
    symbolName?: string;
    symbolPath?: string;
    directory?: string;
    from?: string;
} & Partial<RenderDataContext>;
export type TemplateRenderReturnType = {
    templateId: string;
    content: string;
    outputPath: string;
    name?: string;
    symbolName?: string;
    symbolPath?: string;
    symbolPathBasename?: string;
    source?: SourceFile;
};
export declare class CliTemplatesService {
    #private;
    readonly fs: CliFs;
    get rootDir(): string;
    get srcDir(): string;
    get templatesDir(): string;
    $onInit(): Promise<void>;
    loadTemplates(): Promise<void>;
    getAll(): DefineTemplateOptions[];
    find(id?: string): DefineTemplateOptions[];
    get(id: string): DefineTemplateOptions | undefined;
    render(templateId: string, data: TemplateRenderOptions): Promise<TemplateRenderReturnType | undefined>;
    getRenderedFiles(): TemplateRenderReturnType[];
    protected pushRenderResult(renderedFile: TemplateRenderReturnType): TemplateRenderReturnType;
}
