import { Construct } from "constructs";
import { DockerImage } from "aws-cdk-lib/core/lib/bundling";
import { BundlingOptions } from "aws-cdk-lib";
import { FunctionOptions, Runtime } from "aws-cdk-lib/aws-lambda";
import { DeployedFunction, DeployedFunctionOptions } from "./deployed-function";
import { FunctionAlarmsOptions } from "./function-alarms";
/**
 * Options for BundledFunction.
 */
export interface BundledFunctionOptions {
    /**
     * Turns off local bundling.
     *
     * @default false
     */
    readonly disableLocalBundling?: boolean;
    /**
     * Turns off docker bundling.
     *
     * @default false
     */
    readonly disableDockerBundling?: boolean;
    /**
     * Overrides the default bundling script.
     */
    readonly bundlingScript?: string;
    /**
     * Additional environment variable to be passed to the bundling script.
     */
    readonly bundlingEnvironment?: {
        [key: string]: string;
    };
    /**
     * Bundling options to use for this function. Use this to specify custom bundling options like
     * the bundling Docker image, asset hash type, custom hash, architecture, etc.
     *
     * @default
     */
    readonly bundling?: BundlingOptions;
    /**
     * Path to the source of the function.
     *
     * Example: path.join(__dirname, '..', 'mylambda')
     */
    readonly entry: string;
}
/**
 * Properties for BundledFunction
 */
export interface BundledFunctionProps extends FunctionOptions, FunctionAlarmsOptions, DeployedFunctionOptions, BundledFunctionOptions {
    /**
     * Callback function to check if local bundling is supported.
     */
    readonly isLocalBundlingSupported: () => boolean;
    /**
     * The default bundling script to use.
     */
    readonly defaultBundlingScript: string;
    /**
     * The default bundling image to use.
     */
    readonly defaultBundlingImage: DockerImage;
    /**
     * The runtime environment for the Lambda function.
     */
    readonly runtime: Runtime;
    /**
     * The name of the method to execute the Lambda function.
     */
    readonly handler: string;
}
export declare class BundledFunction extends DeployedFunction {
    constructor(scope: Construct, id: string, props: BundledFunctionProps);
}
