import ReleaseDefinition from './ReleaseDefinition';
import { Logger } from '@flxbl-io/sfp-logger';
import ReleaseConfig from './ReleaseConfig';
export default class ReleaseDefinitionGenerator {
    private logger;
    private gitRef;
    private releaseName;
    private branch;
    private metadata;
    private directory?;
    private noPush;
    private forcePush;
    private inMemoryMode;
    private _releaseConfiguration;
    get releaseConfiguration(): ReleaseConfig;
    constructor(logger: Logger, gitRef: string, pathToReleaseDefinition: string, releaseName: string, branch: string, metadata: any, directory?: string, noPush?: boolean, forcePush?: boolean, inMemoryMode?: boolean);
    exec(): Promise<ReleaseDefinition | {
        releaseDefinitonYAML: string;
        pathToReleaseDefnDirectory: string;
    }>;
    private execHandler;
    private fetchFromGitRef;
    private generateReleaseDefintion;
    private createDirectory;
    private validateReleaseDefinitionGeneratorConfig;
    private getArtifactPredicate;
    private getDependencyPredicate;
}
