import { Planner } from '../../../_common/planner';
import { AmplifyMigrationOperation } from '../../../_common/operation';
import { BackendGenerator } from '../backend.generator';
import { SpinningLogger } from '../../../_common/spinning-logger';
export interface GeoResourceProps {
    readonly constructClassName: string;
    readonly constructFileName: string;
    readonly resourceName: string;
    readonly userPoolIdParamName: string;
    readonly groupRoles: ReadonlyArray<{
        readonly paramName: string;
        readonly groupName: string;
    }>;
    readonly isDefault: string;
    readonly needsAuthAndUnauthRoles: boolean;
    readonly serviceSpecificProps: ReadonlyArray<{
        readonly key: string;
        readonly value: string;
    }>;
    readonly gen1ResourceName: string;
    readonly gen1Actions: readonly string[];
    readonly serviceName: 'Map' | 'PlaceIndex' | 'GeofenceCollection';
}
export declare class GeoGenerator implements Planner {
    private readonly backendGenerator;
    private readonly outputDir;
    private readonly renderer;
    private readonly logger;
    private readonly maps;
    private readonly placeIndices;
    private readonly geofenceCollections;
    constructor(backendGenerator: BackendGenerator, outputDir: string, logger: SpinningLogger);
    addMap(props: GeoResourceProps): void;
    addPlaceIndex(props: GeoResourceProps): void;
    addGeofenceCollection(props: GeoResourceProps): void;
    plan(): Promise<AmplifyMigrationOperation[]>;
}
//# sourceMappingURL=geo.generator.d.ts.map