import type { DomainGenerationOptions, GeneratedFile } from '../templates/domains';
export interface Logger {
    info(message: string): void;
    success(message: string): void;
    error(message: string): void;
    log(message: string): void;
}
export interface PathUtils {
    getDomainPath(domainName: string): string;
    getDomainsBasePath(): string;
    validateDomainName(name: string): boolean;
}
export interface DomainTemplate {
    getIndexTemplate(domainName: string): string;
    getTypesTemplate(domainName: string): string;
    getApiTemplate(domainName: string): string;
    getServicesTemplate(domainName: string): string;
    getQueriesTemplate(domainName: string): string;
    getStoreTemplate(domainName: string): string;
    getUiTemplate(domainName: string): string;
    getServicesTestTemplate(domainName: string): string;
    getApiTestTemplate(domainName: string): string;
    getQueriesTestTemplate(domainName: string): string;
    getStoreTestTemplate(domainName: string): string;
    getUiTestTemplate(domainName: string): string;
    getUiIndexTemplate(domainName: string): string;
}
export interface DomainServices {
    logger: Logger;
    pathUtils: PathUtils;
    generateDomainFiles: (domainName: string, options: DomainGenerationOptions) => GeneratedFile[];
}
export interface Config {
    domainsDir: string;
    templateDefaults: {
        withUi: boolean;
        withStore: boolean;
        withQueries: boolean;
        withApi: boolean;
    };
}
//# sourceMappingURL=interfaces.d.ts.map