import { ApplicationConfig } from '../types/container-config';
export type FileOutput = {
    content: any;
    format: TemplateFormat;
    isMain?: boolean;
};
export type ParserFileConfig = {
    path: string;
    templateFormat: TemplateFormat;
    isMain?: boolean;
    description?: string;
};
export type ParserConfig = {
    files: ParserFileConfig[];
    cpu?: any;
    memory?: any;
    diskSizeGB?: number;
    region?: string;
    subscriptionName?: string;
};
export type ParserInfo = {
    providerWebsite: string;
    providerName: string;
    providerNameAbbreviation: string;
    languageOfficialDocs: string;
    languageAbbreviation: string;
    languageName: string;
    defaultParserConfig: ParserConfig;
};
export declare enum RegistryType {
    DOCKER_HUB = "DOCKER_HUB",
    GHCR = "GHCR"
}
export interface DockerImageInfo {
    registry_type: RegistryType;
    registry?: string;
    repository: string;
    tag?: string;
    digest?: string;
}
export declare enum TemplateFormat {
    json = "json",
    yaml = "yaml",
    text = "text"
}
export declare function formatResponse(response: string, templateFormat: TemplateFormat): any;
export declare abstract class BaseParser {
    parse(config: ApplicationConfig, templateFormat?: TemplateFormat): any;
    abstract parseFiles(config: ApplicationConfig): {
        [path: string]: FileOutput;
    };
    abstract getInfo(): ParserInfo;
    protected formatFileContent(content: any, format: TemplateFormat): string;
}
