import type { NonEmptyString } from "../../../common/CustomTypes/NonEmptyString";
import type { Arn } from "../../CustomTypes/Arn";
import type { AwsResourceCommon } from "../common";
import type { CloudFormationValue } from "../IntrinsicFunctions";
import type { AuthType } from "./common";
export declare type PermissionType = 'AWS::Lambda::Permission';
export interface Permission extends AwsResourceCommon {
    Type: PermissionType;
    Properties: AwsLambdaPermissionProperties;
}
export interface AwsLambdaPermissionProperties {
    Action: NonEmptyString;
    EventSourceToken?: CloudFormationValue;
    FunctionName: CloudFormationValue;
    Principal: CloudFormationValue;
    SourceAccount?: CloudFormationValue;
    SourceArn?: CloudFormationValue<Arn>;
    FunctionUrlAuthType?: AuthType;
    PrincipalOrgID?: CloudFormationValue;
}
