import { SSM } from 'aws-sdk';
import type { Logger } from "../Logging";
import type { Maybe } from "../Maybe";
import type { Dict } from "../Types";
import type { IParameterStoreLayer } from "./ParametersManager";
export interface AWSParameterStoreOptions {
    logger?: Logger;
    environment?: string;
    service?: string;
}
export declare class AWSParameterStore implements IParameterStoreLayer {
    #private;
    constructor(ssm?: SSM, { logger, environment, service, }?: AWSParameterStoreOptions);
    /**
     *Brings parameter from SSM
     * @param param param should be without environment prefix
     * @returns value of param
     */
    get(param: string): Promise<Maybe<string>>;
    /**
     *Brings parameters from SSM
     * @param params params should be without environment prefix
     * @returns [name, value] for requested params
     */
    getParameters<T extends string>(params: readonly T[]): Promise<Dict<string, T>>;
    getParametersByPath(path: string, { isRecursive }?: GetParamsByPathOptions): Promise<Dict<string>>;
}
export interface GetParamsByPathOptions {
    /**
     * if true brings all sublevels in hierarchy of provided path
     */
    isRecursive?: boolean;
}
