export interface Tag {
    /** The key of the tag. */
    key: string;
    /** The value of the tag. */
    value: string;
}
export interface DestinationConfig {
    /** The name of the IoT thing to which you want to connect. */
    thingName?: string;
    /** A list of service names that identify the target application. The IoT client running on the destination device reads this value and uses it to look up a port or an IP address and a port. The IoT clien */
    services: string[];
}
export interface TimeoutConfig {
    /** The maximum amount of time (in minutes) a tunnel can remain open. If not specified, maxLifetimeTimeoutMinutes defaults to 720 minutes. Valid values are from 1 minute to 12 hours (720 minutes) */
    maxLifetimeTimeoutMinutes?: number;
}
export interface CloseTunnelInput {
    /** The ID of the tunnel to close. */
    tunnelId: string;
    /** When set to true, IoT Secure Tunneling deletes the tunnel data immediately. */
    delete?: boolean;
}
export interface DescribeTunnelInput {
    /** The tunnel to describe. */
    tunnelId: string;
}
export interface ListTagsForResourceInput {
    /** The resource ARN. */
    resourceArn: string;
}
export interface ListTunnelsInput {
    /** The maximum number of results to return at once. */
    maxResults?: number;
    /** To retrieve the next set of results, the nextToken value from a previous response; otherwise null to receive the first set of results. */
    nextToken?: string;
    /** The name of the IoT thing associated with the destination device. */
    thingName?: string;
}
export interface OpenTunnelInput {
    /** A short text description of the tunnel. */
    description?: string;
    /** The destination configuration for the OpenTunnel request. */
    destinationConfig?: DestinationConfig;
    /** A collection of tag metadata. */
    tags?: Tag[];
    /** Timeout configuration for a tunnel. */
    timeoutConfig?: TimeoutConfig;
}
export interface RotateTunnelAccessTokenInput {
    /** The mode of the client that will use the client token, which can be either the source or destination, or both source and destination. */
    clientMode: 'SOURCE' | 'DESTINATION' | 'ALL';
    /** The tunnel for which you want to rotate the access tokens. */
    tunnelId: string;
    destinationConfig?: DestinationConfig;
}
export interface TagResourceInput {
    /** The ARN of the resource. */
    resourceArn: string;
    /** The tags for the resource. */
    tags: Tag[];
}
export interface UntagResourceInput {
    /** The resource ARN. */
    resourceArn: string;
    /** The keys of the tags to remove. */
    tagKeys: string[];
}
/** IoTSecureTunneling service binding for Step Functions SDK integrations. */
export declare class IoTSecureTunneling {
    constructor();
    closeTunnel<T>(params: CloseTunnelInput): Promise<T>;
    describeTunnel<T>(params: DescribeTunnelInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listTunnels<T>(params: ListTunnelsInput): Promise<T>;
    openTunnel<T>(params: OpenTunnelInput): Promise<T>;
    rotateTunnelAccessToken<T>(params: RotateTunnelAccessTokenInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
}
//# sourceMappingURL=IoTSecureTunneling.d.ts.map