import * as iam from "../../../aws-iam";
import * as sfn from "../../../aws-stepfunctions";
import { Construct } from 'constructs';
/**
 * (experimental) Properties for calling an AWS service's API action from your state machine.
 *
 * @see https://docs.aws.amazon.com/step-functions/latest/dg/supported-services-awssdk.html
 * @experimental
 */
export interface CallAwsServiceProps extends sfn.TaskStateBaseProps {
    /**
     * (experimental) The AWS service to call.
     *
     * @see https://docs.aws.amazon.com/step-functions/latest/dg/supported-services-awssdk.html
     * @experimental
     */
    readonly service: string;
    /**
     * (experimental) The API action to call.
     *
     * Use camelCase.
     *
     * @experimental
     */
    readonly action: string;
    /**
     * (experimental) Parameters for the API action call.
     *
     * Use PascalCase for the parameter names.
     *
     * @default - no parameters
     * @experimental
     */
    readonly parameters?: {
        [key: string]: any;
    };
    /**
     * (experimental) The resources for the IAM statement that will be added to the state machine role's policy to allow the state machine to make the API call.
     *
     * By default the action for this IAM statement will be `service:action`.
     *
     * @experimental
     */
    readonly iamResources: string[];
    /**
     * (experimental) The action for the IAM statement that will be added to the state machine role's policy to allow the state machine to make the API call.
     *
     * Use in the case where the IAM action name does not match with the
     * API service/action name, e.g. `s3:ListBuckets` requires `s3:ListAllMyBuckets`.
     *
     * @default - service:action
     * @experimental
     */
    readonly iamAction?: string;
}
/**
 * (experimental) A StepFunctions task to call an AWS service API.
 *
 * @experimental
 */
export declare class CallAwsService extends sfn.TaskStateBase {
    private readonly props;
    /**
     * @experimental
     */
    protected readonly taskMetrics?: sfn.TaskMetricsConfig;
    /**
     * @experimental
     */
    protected readonly taskPolicies?: iam.PolicyStatement[];
    /**
     * @experimental
     */
    constructor(scope: Construct, id: string, props: CallAwsServiceProps);
    /**
     * @internal
     */
    protected _renderTask(): any;
}
