import { Planner } from '../../../_common/planner';
import { AmplifyMigrationOperation } from '../../../_common/operation';
import { DiscoveredResource, Gen1App } from '../../../_common/gen1-app';
import { GeoResourceProps, GeoGenerator } from './geo.generator';
import { SpinningLogger } from '../../../_common/spinning-logger';
export declare abstract class GeoResourceGenerator implements Planner {
    protected readonly gen1App: Gen1App;
    protected readonly outputDir: string;
    protected readonly resource: DiscoveredResource;
    protected readonly geoGenerator: GeoGenerator;
    protected readonly logger: SpinningLogger;
    private readonly renderer;
    protected constructor(gen1App: Gen1App, outputDir: string, resource: DiscoveredResource, geoGenerator: GeoGenerator, logger: SpinningLogger);
    protected abstract addResource(base: GeoResourceProps, parameters: ReadonlyMap<string, string>): GeoResourceProps;
    plan(): Promise<AmplifyMigrationOperation[]>;
    private generateBase;
    private getNestedStackPhysicalName;
    private getNestedStackParameters;
    private preTransmute;
    private postTransmute;
}
//# sourceMappingURL=geo-resource.generator.d.ts.map