import { Application, Provider } from 'lakutata';
import { ListTemplatesOptions } from '../../options/ListTemplatesOptions';
import { Logger } from 'lakutata/com/logger';
import { Spinner } from '../components/Spinner';
type TemplateInfo = {
    name: string;
    description: string;
    repository: string;
};
export declare class TemplateManager extends Provider {
    protected readonly app: Application;
    protected readonly log: Logger;
    protected readonly spinner: Spinner;
    protected readonly apiHost: string;
    protected readonly repoPrefix: string;
    protected readonly localDataFilename: string;
    /**
     * Initializer
     * @protected
     */
    protected init(): Promise<void>;
    /**
     * Fetch template repository list from remote
     * @protected
     */
    protected fetchTemplateRepos(): Promise<TemplateInfo[]>;
    /**
     * List templates
     * @param options
     */
    list(options: ListTemplatesOptions): Promise<void>;
    /**
     * Print template information to console
     * @param templateInfos
     * @param updatedAt
     * @protected
     */
    protected printTemplates(templateInfos: TemplateInfo[], updatedAt: number): void;
}
export {};
//# sourceMappingURL=TemplateManager.d.ts.map