import * as stepfunctions from './stepfunctions.generated';
import * as iam from '../../aws-iam';
/**
 * Properties for StateMachineGrants
 */
export interface StateMachineGrantsProps {
    /**
     * The resource on which actions will be allowed
     */
    readonly resource: stepfunctions.IStateMachineRef;
}
/**
 * Collection of grant methods for a IStateMachineRef
 */
export declare class StateMachineGrants {
    /**
     * Creates grants for StateMachineGrants
     */
    static fromStateMachine(resource: stepfunctions.IStateMachineRef): StateMachineGrants;
    protected readonly resource: stepfunctions.IStateMachineRef;
    private constructor();
    /**
     * Grant the given identity task response permissions on a state machine
     */
    taskResponse(grantee: iam.IGrantable): iam.Grant;
    /**
     * Grant the given identity permission to redrive the execution of the state machine
     */
    redriveExecution(grantee: iam.IGrantable): iam.Grant;
    /**
     * Grant the given identity permissions to read results from state
     * machine.
     */
    read(grantee: iam.IGrantable): iam.Grant;
    /**
     * Grant the given identity permissions to start an execution of this state
     * machine.
     *
     * @param grantee The principal
     */
    startExecution(grantee: iam.IGrantable): iam.Grant;
    /**
     * Grant the given identity permissions to start a synchronous execution of
     * this state machine.
     *
     * @param grantee The principal
     */
    startSyncExecution(grantee: iam.IGrantable): iam.Grant;
    /**
     * Grant the given identity permissions to start an execution of
     * this state machine.
     *
     * @param grantee The principal
     */
    execution(grantee: iam.IGrantable, ...actions: string[]): iam.Grant;
    /**
     * Grant the given identity custom permissions
     */
    actions(identity: iam.IGrantable, ...actions: string[]): iam.Grant;
    /**
     * Returns the pattern for the execution ARN's of the state machine
     */
    private executionArn;
}
