export interface SuiteDefinitionConfiguration {
    /** Gets the suite definition name. This is a required parameter. */
    suiteDefinitionName: string;
    /** Gets the devices configured. */
    devices?: any[];
    /** Gets the tests intended for qualification in a suite. */
    intendedForQualification?: boolean;
    /** Verifies if the test suite is a long duration test. */
    isLongDurationTest?: boolean;
    /** Gets the test suite root group. This is a required parameter. For updating or creating the latest qualification suite, if intendedForQualification is set to true, rootGroup can be an empty string. If  */
    rootGroup: string;
    /** Gets the device permission ARN. This is a required parameter. */
    devicePermissionRoleArn: string;
    /** Sets the MQTT protocol that is configured in the suite definition. */
    protocol?: 'MqttV3_1_1' | 'MqttV5' | 'MqttV3_1_1_OverWebSocket' | 'MqttV5_OverWebSocket';
}
export interface DeviceUnderTest {
    /** Lists device's thing ARN. */
    thingArn?: string;
    /** Lists device's certificate ARN. */
    certificateArn?: string;
    /** Lists device's role ARN. */
    deviceRoleArn?: string;
}
export interface SuiteRunConfiguration {
    /** Sets the primary device for the test suite run. This requires a thing ARN or a certificate ARN. */
    primaryDevice: DeviceUnderTest;
    /** Sets test case list. */
    selectedTestList?: string[];
    /** TRUE if multiple test suites run in parallel. */
    parallelRun?: boolean;
}
export interface CreateSuiteDefinitionInput {
    /** Creates a Device Advisor test suite with suite definition configuration. */
    suiteDefinitionConfiguration: SuiteDefinitionConfiguration;
    /** The client token for the test suite definition creation. This token is used for tracking test suite definition creation using retries and obtaining its status. This parameter is optional. */
    clientToken?: string;
    /** The tags to be attached to the suite definition. */
    tags?: Record<string, string>;
}
export interface DeleteSuiteDefinitionInput {
    /** Suite definition ID of the test suite to be deleted. */
    suiteDefinitionId: string;
}
export interface GetEndpointInput {
    /** The authentication method used during the device connection. */
    authenticationMethod?: 'X509ClientCertificate' | 'SignatureVersion4';
    /** The certificate ARN of the device. This is an optional parameter. */
    certificateArn?: string;
    /** The device role ARN of the device. This is an optional parameter. */
    deviceRoleArn?: string;
    /** The thing ARN of the device. This is an optional parameter. */
    thingArn?: string;
}
export interface GetSuiteDefinitionInput {
    /** Suite definition ID of the test suite to get. */
    suiteDefinitionId: string;
    /** Suite definition version of the test suite to get. */
    suiteDefinitionVersion?: string;
}
export interface GetSuiteRunInput {
    /** Suite definition ID for the test suite run. */
    suiteDefinitionId: string;
    /** Suite run ID for the test suite run. */
    suiteRunId: string;
}
export interface GetSuiteRunReportInput {
    /** Suite definition ID of the test suite. */
    suiteDefinitionId: string;
    /** Suite run ID of the test suite run. */
    suiteRunId: string;
}
export interface ListSuiteDefinitionsInput {
    /** The maximum number of results to return at once. */
    maxResults?: number;
    /** A token used to get the next set of results. */
    nextToken?: string;
}
export interface ListSuiteRunsInput {
    /** The maximum number of results to return at once. */
    maxResults?: number;
    /** A token to retrieve the next set of results. */
    nextToken?: string;
    /** Lists the test suite runs of the specified test suite based on suite definition ID. */
    suiteDefinitionId?: string;
    /** Must be passed along with suiteDefinitionId. Lists the test suite runs of the specified test suite based on suite definition version. */
    suiteDefinitionVersion?: string;
}
export interface ListTagsForResourceInput {
    /** The resource ARN of the IoT Device Advisor resource. This can be SuiteDefinition ARN or SuiteRun ARN. */
    resourceArn: string;
}
export interface StartSuiteRunInput {
    /** Suite definition ID of the test suite. */
    suiteDefinitionId: string;
    /** Suite run configuration. */
    suiteRunConfiguration: SuiteRunConfiguration;
    /** Suite definition version of the test suite. */
    suiteDefinitionVersion?: string;
    /** The tags to be attached to the suite run. */
    tags?: Record<string, string>;
}
export interface StopSuiteRunInput {
    /** Suite definition ID of the test suite run to be stopped. */
    suiteDefinitionId: string;
    /** Suite run ID of the test suite run to be stopped. */
    suiteRunId: string;
}
export interface TagResourceInput {
    /** The resource ARN of an IoT Device Advisor resource. This can be SuiteDefinition ARN or SuiteRun ARN. */
    resourceArn: string;
    /** The tags to be attached to the IoT Device Advisor resource. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The resource ARN of an IoT Device Advisor resource. This can be SuiteDefinition ARN or SuiteRun ARN. */
    resourceArn: string;
    /** List of tag keys to remove from the IoT Device Advisor resource. */
    tagKeys: string[];
}
export interface UpdateSuiteDefinitionInput {
    /** Updates a Device Advisor test suite with suite definition configuration. */
    suiteDefinitionConfiguration: SuiteDefinitionConfiguration;
    /** Suite definition ID of the test suite to be updated. */
    suiteDefinitionId: string;
}
/** IotDeviceAdvisor service binding for Step Functions SDK integrations. */
export declare class IotDeviceAdvisor {
    constructor();
    createSuiteDefinition<T>(params: CreateSuiteDefinitionInput): Promise<T>;
    deleteSuiteDefinition<T>(params: DeleteSuiteDefinitionInput): Promise<T>;
    getEndpoint<T>(params: GetEndpointInput): Promise<T>;
    getSuiteDefinition<T>(params: GetSuiteDefinitionInput): Promise<T>;
    getSuiteRun<T>(params: GetSuiteRunInput): Promise<T>;
    getSuiteRunReport<T>(params: GetSuiteRunReportInput): Promise<T>;
    listSuiteDefinitions<T>(params: ListSuiteDefinitionsInput): Promise<T>;
    listSuiteRuns<T>(params: ListSuiteRunsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    startSuiteRun<T>(params: StartSuiteRunInput): Promise<T>;
    stopSuiteRun<T>(params: StopSuiteRunInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateSuiteDefinition<T>(params: UpdateSuiteDefinitionInput): Promise<T>;
}
//# sourceMappingURL=IotDeviceAdvisor.d.ts.map