import { Stack } from 'aws-cdk-lib';
import { IFunction, LayerVersion } from 'aws-cdk-lib/aws-lambda';
import { Construct } from 'constructs';
import { LogLevel } from './props';
/**
 * This is a IinlineLambdaPropeties identified by `I` in its name.
 * It will be translated to a "regular" interface which needs to be implemented.
 *
 * @see https://aws.github.io/jsii/user-guides/lib-author/typescript-restrictions/#interfaces
 */
export interface IPowerToolsLambdaProperties {
    readonly sourceCodedirPath: string;
    /**
     * App or Solution Name
     * @default: 'DemoSolution
     */
    solutionName?: string;
    /**
     * Function Name.
     * @default: 'DemoFunction
     */
    functionName?: string;
    /** Function description */
    description?: string;
    /**
       * Function memory size
       * @default 128
       */
    memorySize?: number;
    /**
         * Function timeout in seconds
         * @default 10
         */
    timeout?: number;
    /**
         * Function log retention in days
         * @default 30
         */
    logRetention?: string;
    /**
           * Metrics Namespace.
           * @default: 'DemoNamespace
           */
    metricsNamespace?: string;
    /**
       * Log level.
       * @default 'INFO'
       */
    logLevel?: LogLevel;
    /**
       * Log the event
       * @default false
       */
    logEvent?: boolean;
    /**
       * Layer containing PowerTools modules.
       * If not included a layer will be created.
       */
    toolsLayer?: LayerVersion;
    /** Add other layers if required */
    layers?: LayerVersion[];
    /**
       * Env variables.
       * PowerTools and env name are included by default.
       */
    environment?: {
        [key: string]: string;
    };
}
export declare class PowerToolsLambdaConstruct extends Construct {
    readonly function: IFunction;
    constructor(parent: Stack, name: string, props: IPowerToolsLambdaProperties);
}
