azure-sdk-for-js/sdk/communication/communication-job-router-rest/review/communication-job-router.ap...

69 KiB

API Report File for "@azure-rest/communication-job-router"

Do not edit this file. It is a report generated by API Extractor.


import type { Client } from '@azure-rest/core-client';
import type { ClientOptions } from '@azure-rest/core-client';
import type { ErrorResponse } from '@azure-rest/core-client';
import type { HttpResponse } from '@azure-rest/core-client';
import type { KeyCredential } from '@azure/core-auth';
import type { Paged } from '@azure/core-paging';
import type { PagedAsyncIterableIterator } from '@azure/core-paging';
import type { PathUncheckedResponse } from '@azure-rest/core-client';
import type { RawHttpHeaders } from '@azure/core-rest-pipeline';
import type { RawHttpHeadersInput } from '@azure/core-rest-pipeline';
import type { RequestParameters } from '@azure-rest/core-client';
import type { StreamableMethod } from '@azure-rest/core-client';
import type { TokenCredential } from '@azure/core-auth';

// @public (undocumented)
export interface Accept {
    post(options?: AcceptParameters): StreamableMethod<Accept200Response | AcceptDefaultResponse>;
}

// @public
export interface Accept200Response extends HttpResponse {
    // (undocumented)
    body: AcceptJobOfferResultOutput;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface AcceptDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface AcceptDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & AcceptDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public
export interface AcceptJobOfferResultOutput {
    assignmentId: string;
    jobId: string;
    workerId: string;
}

// @public (undocumented)
export type AcceptParameters = RequestParameters;

// @public (undocumented)
export type AzureCommunicationRoutingServiceClient = Client & {
    path: Routes;
};

// @public
export interface BestWorkerMode extends DistributionModeParent {
    kind: "bestWorker";
    scoringRule?: RouterRule;
    scoringRuleOptions?: ScoringRuleOptions;
}

// @public
export interface BestWorkerModeOutput extends DistributionModeOutputParent {
    kind: "bestWorker";
    scoringRule?: RouterRuleOutput;
    scoringRuleOptions?: ScoringRuleOptionsOutput;
}

// @public (undocumented)
export interface Cancel {
    post(options?: CancelParameters): StreamableMethod<Cancel200Response | CancelDefaultResponse>;
}

// @public
export interface Cancel200Response extends HttpResponse {
    // (undocumented)
    body: CancelJobResultOutput;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface CancelBodyParam {
    body?: CancelJobOptions;
}

// @public (undocumented)
export interface CancelDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface CancelDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & CancelDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public
export interface CancelExceptionAction extends ExceptionActionParent {
    dispositionCode?: string;
    kind: "cancel";
    note?: string;
}

// @public
export interface CancelExceptionActionOutput extends ExceptionActionOutputParent {
    dispositionCode?: string;
    kind: "cancel";
    note?: string;
}

// @public
export interface CancelJobOptions {
    dispositionCode?: string;
    note?: string;
}

// @public
export interface CancelJobResultOutput {
}

// @public (undocumented)
export type CancelParameters = CancelBodyParam & RequestParameters;

// @public
export interface ClassificationPolicy {
    fallbackQueueId?: string;
    name?: string;
    prioritizationRule?: RouterRule;
    queueSelectorAttachments?: Array<QueueSelectorAttachment>;
    workerSelectorAttachments?: Array<WorkerSelectorAttachment>;
}

// @public
export interface ClassificationPolicyOutput {
    readonly etag: string;
    fallbackQueueId?: string;
    readonly id: string;
    name?: string;
    prioritizationRule?: RouterRuleOutput;
    queueSelectorAttachments?: Array<QueueSelectorAttachmentOutput>;
    workerSelectorAttachments?: Array<WorkerSelectorAttachmentOutput>;
}

// @public
export type ClassificationPolicyResourceMergeAndPatch = Partial<ClassificationPolicy>;

// @public (undocumented)
export interface Close {
    post(options?: CloseParameters): StreamableMethod<Close200Response | CloseDefaultResponse>;
}

// @public
export interface Close200Response extends HttpResponse {
    // (undocumented)
    body: CloseJobResultOutput;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface CloseBodyParam {
    body?: CloseJobOptions;
}

// @public (undocumented)
export interface CloseDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface CloseDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & CloseDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public
export interface CloseJobOptions {
    closeAt?: Date | string;
    dispositionCode?: string;
    note?: string;
}

// @public
export interface CloseJobResultOutput {
}

// @public (undocumented)
export type CloseParameters = CloseBodyParam & RequestParameters;

// @public (undocumented)
export interface Complete {
    post(options?: CompleteParameters): StreamableMethod<Complete200Response | CompleteDefaultResponse>;
}

// @public
export interface Complete200Response extends HttpResponse {
    // (undocumented)
    body: CompleteJobResultOutput;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface CompleteBodyParam {
    body?: CompleteJobOptions;
}

// @public (undocumented)
export interface CompleteDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface CompleteDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & CompleteDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public
export interface CompleteJobOptions {
    note?: string;
}

// @public
export interface CompleteJobResultOutput {
}

// @public (undocumented)
export type CompleteParameters = CompleteBodyParam & RequestParameters;

// @public
export interface ConditionalQueueSelectorAttachment extends QueueSelectorAttachmentParent {
    condition: RouterRule;
    kind: "conditional";
    queueSelectors: Array<RouterQueueSelector>;
}

// @public
export interface ConditionalQueueSelectorAttachmentOutput extends QueueSelectorAttachmentOutputParent {
    condition: RouterRuleOutput;
    kind: "conditional";
    queueSelectors: Array<RouterQueueSelectorOutput>;
}

// @public
export interface ConditionalWorkerSelectorAttachment extends WorkerSelectorAttachmentParent {
    condition: RouterRule;
    kind: "conditional";
    workerSelectors: Array<RouterWorkerSelector>;
}

// @public
export interface ConditionalWorkerSelectorAttachmentOutput extends WorkerSelectorAttachmentOutputParent {
    condition: RouterRuleOutput;
    kind: "conditional";
    workerSelectors: Array<RouterWorkerSelectorOutput>;
}

// @public
function createClient(connectionString: string, options: ClientOptions): AzureCommunicationRoutingServiceClient;

// @public
function createClient(endpoint: string, credentialOrOptions?: KeyCredential | TokenCredential, options?: ClientOptions): AzureCommunicationRoutingServiceClient;
export default createClient;

// @public (undocumented)
export interface Decline {
    post(options?: DeclineParameters): StreamableMethod<Decline200Response | DeclineDefaultResponse>;
}

// @public
export interface Decline200Response extends HttpResponse {
    // (undocumented)
    body: DeclineJobOfferResultOutput;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface DeclineBodyParam {
    body?: DeclineJobOfferOptions;
}

// @public (undocumented)
export interface DeclineDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface DeclineDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & DeclineDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public
export interface DeclineJobOfferOptions {
    retryOfferAt?: Date | string;
}

// @public
export interface DeclineJobOfferResultOutput {
}

// @public (undocumented)
export type DeclineParameters = DeclineBodyParam & RequestParameters;

// @public
export interface DeleteClassificationPolicy204Response extends HttpResponse {
    // (undocumented)
    status: "204";
}

// @public (undocumented)
export interface DeleteClassificationPolicyDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface DeleteClassificationPolicyDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & DeleteClassificationPolicyDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type DeleteClassificationPolicyParameters = RequestParameters;

// @public
export interface DeleteDistributionPolicy204Response extends HttpResponse {
    // (undocumented)
    status: "204";
}

// @public (undocumented)
export interface DeleteDistributionPolicyDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface DeleteDistributionPolicyDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & DeleteDistributionPolicyDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type DeleteDistributionPolicyParameters = RequestParameters;

// @public
export interface DeleteExceptionPolicy204Response extends HttpResponse {
    // (undocumented)
    status: "204";
}

// @public (undocumented)
export interface DeleteExceptionPolicyDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface DeleteExceptionPolicyDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & DeleteExceptionPolicyDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type DeleteExceptionPolicyParameters = RequestParameters;

// @public
export interface DeleteJob204Response extends HttpResponse {
    // (undocumented)
    status: "204";
}

// @public (undocumented)
export interface DeleteJobDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface DeleteJobDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & DeleteJobDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type DeleteJobParameters = RequestParameters;

// @public
export interface DeleteQueue204Response extends HttpResponse {
    // (undocumented)
    status: "204";
}

// @public (undocumented)
export interface DeleteQueueDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface DeleteQueueDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & DeleteQueueDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type DeleteQueueParameters = RequestParameters;

// @public
export interface DeleteWorker204Response extends HttpResponse {
    // (undocumented)
    status: "204";
}

// @public (undocumented)
export interface DeleteWorkerDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface DeleteWorkerDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & DeleteWorkerDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type DeleteWorkerParameters = RequestParameters;

// @public
export interface DirectMapRouterRule extends RouterRuleParent {
    kind: "directMap";
}

// @public
export interface DirectMapRouterRuleOutput extends RouterRuleOutputParent {
    kind: "directMap";
}

// @public
export type DistributionMode = DistributionModeParent | BestWorkerMode | LongestIdleMode | RoundRobinMode;

// @public
export type DistributionModeOutput = DistributionModeOutputParent | BestWorkerModeOutput | LongestIdleModeOutput | RoundRobinModeOutput;

// @public
export interface DistributionModeOutputParent {
    bypassSelectors?: boolean;
    // (undocumented)
    kind: string;
    maxConcurrentOffers?: number;
    minConcurrentOffers?: number;
}

// @public
export interface DistributionModeParent {
    bypassSelectors?: boolean;
    // (undocumented)
    kind: string;
    maxConcurrentOffers?: number;
    minConcurrentOffers?: number;
}

// @public
export interface DistributionPolicy {
    mode?: DistributionMode;
    name?: string;
    offerExpiresAfterSeconds?: number;
}

// @public
export interface DistributionPolicyOutput {
    readonly etag: string;
    readonly id: string;
    mode?: DistributionModeOutput;
    name?: string;
    offerExpiresAfterSeconds?: number;
}

// @public
export type DistributionPolicyResourceMergeAndPatch = Partial<DistributionPolicy>;

// @public
export type ExceptionAction = ExceptionActionParent | CancelExceptionAction | ManualReclassifyExceptionAction | ReclassifyExceptionAction;

// @public
export type ExceptionActionOutput = ExceptionActionOutputParent | CancelExceptionActionOutput | ManualReclassifyExceptionActionOutput | ReclassifyExceptionActionOutput;

// @public
export interface ExceptionActionOutputParent {
    id?: string;
    // (undocumented)
    kind: string;
}

// @public
export interface ExceptionActionParent {
    id?: string;
    // (undocumented)
    kind: string;
}

// @public
export interface ExceptionPolicy {
    exceptionRules?: Array<ExceptionRule>;
    name?: string;
}

// @public
export interface ExceptionPolicyOutput {
    readonly etag: string;
    exceptionRules?: Array<ExceptionRuleOutput>;
    readonly id: string;
    name?: string;
}

// @public
export type ExceptionPolicyResourceMergeAndPatch = Partial<ExceptionPolicy>;

// @public
export interface ExceptionRule {
    actions: Array<ExceptionAction>;
    id: string;
    trigger: ExceptionTrigger;
}

// @public
export interface ExceptionRuleOutput {
    actions: Array<ExceptionActionOutput>;
    id: string;
    trigger: ExceptionTriggerOutput;
}

// @public
export type ExceptionTrigger = ExceptionTriggerParent | QueueLengthExceptionTrigger | WaitTimeExceptionTrigger;

// @public
export type ExceptionTriggerOutput = ExceptionTriggerOutputParent | QueueLengthExceptionTriggerOutput | WaitTimeExceptionTriggerOutput;

// @public
export interface ExceptionTriggerOutputParent {
    // (undocumented)
    kind: string;
}

// @public
export interface ExceptionTriggerParent {
    // (undocumented)
    kind: string;
}

// @public
export interface ExpressionRouterRule extends RouterRuleParent {
    expression: string;
    kind: "expression";
    language?: string;
}

// @public
export interface ExpressionRouterRuleOutput extends RouterRuleOutputParent {
    expression: string;
    kind: "expression";
    language?: string;
}

// @public
export interface FunctionRouterRule extends RouterRuleParent {
    credential?: FunctionRouterRuleCredential;
    functionUri: string;
    kind: "function";
}

// @public
export interface FunctionRouterRuleCredential {
    appKey?: string;
    clientId?: string;
    functionKey?: string;
}

// @public
export interface FunctionRouterRuleCredentialOutput {
    appKey?: string;
    clientId?: string;
    functionKey?: string;
}

// @public
export interface FunctionRouterRuleOutput extends RouterRuleOutputParent {
    credential?: FunctionRouterRuleCredentialOutput;
    functionUri: string;
    kind: "function";
}

// @public
export type GetArrayType<T> = T extends Array<infer TData> ? TData : never;

// @public (undocumented)
export interface GetClassificationPolicy200Headers {
    "last-modified"?: string;
    etag?: string;
}

// @public
export interface GetClassificationPolicy200Response extends HttpResponse {
    // (undocumented)
    body: ClassificationPolicyOutput;
    // (undocumented)
    headers: RawHttpHeaders & GetClassificationPolicy200Headers;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface GetClassificationPolicyDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface GetClassificationPolicyDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & GetClassificationPolicyDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type GetClassificationPolicyParameters = RequestParameters;

// @public (undocumented)
export interface GetDistributionPolicy200Headers {
    "last-modified"?: string;
    etag?: string;
}

// @public
export interface GetDistributionPolicy200Response extends HttpResponse {
    // (undocumented)
    body: DistributionPolicyOutput;
    // (undocumented)
    headers: RawHttpHeaders & GetDistributionPolicy200Headers;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface GetDistributionPolicyDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface GetDistributionPolicyDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & GetDistributionPolicyDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type GetDistributionPolicyParameters = RequestParameters;

// @public (undocumented)
export interface GetExceptionPolicy200Headers {
    "last-modified"?: string;
    etag?: string;
}

// @public
export interface GetExceptionPolicy200Response extends HttpResponse {
    // (undocumented)
    body: ExceptionPolicyOutput;
    // (undocumented)
    headers: RawHttpHeaders & GetExceptionPolicy200Headers;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface GetExceptionPolicyDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface GetExceptionPolicyDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & GetExceptionPolicyDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type GetExceptionPolicyParameters = RequestParameters;

// @public (undocumented)
export interface GetInQueuePosition {
    get(options?: GetInQueuePositionParameters): StreamableMethod<GetInQueuePosition200Response | GetInQueuePositionDefaultResponse>;
}

// @public
export interface GetInQueuePosition200Response extends HttpResponse {
    // (undocumented)
    body: RouterJobPositionDetailsOutput;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface GetInQueuePositionDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface GetInQueuePositionDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & GetInQueuePositionDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type GetInQueuePositionParameters = RequestParameters;

// @public (undocumented)
export interface GetJob200Headers {
    "last-modified"?: string;
    etag?: string;
}

// @public
export interface GetJob200Response extends HttpResponse {
    // (undocumented)
    body: RouterJobOutput;
    // (undocumented)
    headers: RawHttpHeaders & GetJob200Headers;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface GetJobDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface GetJobDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & GetJobDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type GetJobParameters = RequestParameters;

// @public
export type GetPage<TPage> = (pageLink: string, maxPageSize?: number) => Promise<{
    page: TPage;
    nextPageLink?: string;
}>;

// @public (undocumented)
export interface GetQueue200Headers {
    "last-modified"?: string;
    etag?: string;
}

// @public
export interface GetQueue200Response extends HttpResponse {
    // (undocumented)
    body: RouterQueueOutput;
    // (undocumented)
    headers: RawHttpHeaders & GetQueue200Headers;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface GetQueueDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface GetQueueDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & GetQueueDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type GetQueueParameters = RequestParameters;

// @public (undocumented)
export interface GetQueueStatistics {
    get(options?: GetQueueStatisticsParameters): StreamableMethod<GetQueueStatistics200Response | GetQueueStatisticsDefaultResponse>;
}

// @public
export interface GetQueueStatistics200Response extends HttpResponse {
    // (undocumented)
    body: RouterQueueStatisticsOutput;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface GetQueueStatisticsDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface GetQueueStatisticsDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & GetQueueStatisticsDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type GetQueueStatisticsParameters = RequestParameters;

// @public (undocumented)
export interface GetWorker200Headers {
    "last-modified"?: string;
    etag?: string;
}

// @public
export interface GetWorker200Response extends HttpResponse {
    // (undocumented)
    body: RouterWorkerOutput;
    // (undocumented)
    headers: RawHttpHeaders & GetWorker200Headers;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface GetWorkerDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface GetWorkerDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & GetWorkerDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type GetWorkerParameters = RequestParameters;

// @public (undocumented)
export function isUnexpected(response: UpsertClassificationPolicy200Response | UpsertClassificationPolicy201Response | UpsertClassificationPolicyDefaultResponse): response is UpsertClassificationPolicyDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: GetClassificationPolicy200Response | GetClassificationPolicyDefaultResponse): response is GetClassificationPolicyDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: DeleteClassificationPolicy204Response | DeleteClassificationPolicyDefaultResponse): response is DeleteClassificationPolicyDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: ListClassificationPolicies200Response | ListClassificationPoliciesDefaultResponse): response is ListClassificationPoliciesDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: UpsertDistributionPolicy200Response | UpsertDistributionPolicy201Response | UpsertDistributionPolicyDefaultResponse): response is UpsertDistributionPolicyDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: GetDistributionPolicy200Response | GetDistributionPolicyDefaultResponse): response is GetDistributionPolicyDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: DeleteDistributionPolicy204Response | DeleteDistributionPolicyDefaultResponse): response is DeleteDistributionPolicyDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: ListDistributionPolicies200Response | ListDistributionPoliciesDefaultResponse): response is ListDistributionPoliciesDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: UpsertExceptionPolicy200Response | UpsertExceptionPolicy201Response | UpsertExceptionPolicyDefaultResponse): response is UpsertExceptionPolicyDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: GetExceptionPolicy200Response | GetExceptionPolicyDefaultResponse): response is GetExceptionPolicyDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: DeleteExceptionPolicy204Response | DeleteExceptionPolicyDefaultResponse): response is DeleteExceptionPolicyDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: ListExceptionPolicies200Response | ListExceptionPoliciesDefaultResponse): response is ListExceptionPoliciesDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: UpsertQueue200Response | UpsertQueue201Response | UpsertQueueDefaultResponse): response is UpsertQueueDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: GetQueue200Response | GetQueueDefaultResponse): response is GetQueueDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: DeleteQueue204Response | DeleteQueueDefaultResponse): response is DeleteQueueDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: ListQueues200Response | ListQueuesDefaultResponse): response is ListQueuesDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: UpsertJob200Response | UpsertJob201Response | UpsertJobDefaultResponse): response is UpsertJobDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: GetJob200Response | GetJobDefaultResponse): response is GetJobDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: DeleteJob204Response | DeleteJobDefaultResponse): response is DeleteJobDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: Reclassify200Response | ReclassifyDefaultResponse): response is ReclassifyDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: Cancel200Response | CancelDefaultResponse): response is CancelDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: Complete200Response | CompleteDefaultResponse): response is CompleteDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: Close200Response | CloseDefaultResponse): response is CloseDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: ListJobs200Response | ListJobsDefaultResponse): response is ListJobsDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: GetInQueuePosition200Response | GetInQueuePositionDefaultResponse): response is GetInQueuePositionDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: Unassign200Response | UnassignDefaultResponse): response is UnassignDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: Accept200Response | AcceptDefaultResponse): response is AcceptDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: Decline200Response | DeclineDefaultResponse): response is DeclineDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: GetQueueStatistics200Response | GetQueueStatisticsDefaultResponse): response is GetQueueStatisticsDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: UpsertWorker200Response | UpsertWorker201Response | UpsertWorkerDefaultResponse): response is UpsertWorkerDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: GetWorker200Response | GetWorkerDefaultResponse): response is GetWorkerDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: DeleteWorker204Response | DeleteWorkerDefaultResponse): response is DeleteWorkerDefaultResponse;

// @public (undocumented)
export function isUnexpected(response: ListWorkers200Response | ListWorkersDefaultResponse): response is ListWorkersDefaultResponse;

// @public
export type JobMatchingMode = JobMatchingModeParent | ScheduleAndSuspendMode | QueueAndMatchMode | SuspendMode;

// @public
export type JobMatchingModeOutput = JobMatchingModeOutputParent | ScheduleAndSuspendModeOutput | QueueAndMatchModeOutput | SuspendModeOutput;

// @public
export interface JobMatchingModeOutputParent {
    // (undocumented)
    kind: string;
}

// @public
export interface JobMatchingModeParent {
    // (undocumented)
    kind: string;
}

// @public (undocumented)
export interface ListClassificationPolicies {
    get(options?: ListClassificationPoliciesParameters): StreamableMethod<ListClassificationPolicies200Response | ListClassificationPoliciesDefaultResponse>;
}

// @public
export interface ListClassificationPolicies200Response extends HttpResponse {
    // (undocumented)
    body: PagedClassificationPolicyOutput;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface ListClassificationPoliciesDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface ListClassificationPoliciesDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & ListClassificationPoliciesDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type ListClassificationPoliciesParameters = ListClassificationPoliciesQueryParam & RequestParameters;

// @public (undocumented)
export interface ListClassificationPoliciesQueryParam {
    // (undocumented)
    queryParameters?: ListClassificationPoliciesQueryParamProperties;
}

// @public (undocumented)
export interface ListClassificationPoliciesQueryParamProperties {
    maxpagesize?: number;
}

// @public (undocumented)
export interface ListDistributionPolicies {
    get(options?: ListDistributionPoliciesParameters): StreamableMethod<ListDistributionPolicies200Response | ListDistributionPoliciesDefaultResponse>;
}

// @public
export interface ListDistributionPolicies200Response extends HttpResponse {
    // (undocumented)
    body: PagedDistributionPolicyOutput;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface ListDistributionPoliciesDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface ListDistributionPoliciesDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & ListDistributionPoliciesDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type ListDistributionPoliciesParameters = ListDistributionPoliciesQueryParam & RequestParameters;

// @public (undocumented)
export interface ListDistributionPoliciesQueryParam {
    // (undocumented)
    queryParameters?: ListDistributionPoliciesQueryParamProperties;
}

// @public (undocumented)
export interface ListDistributionPoliciesQueryParamProperties {
    maxpagesize?: number;
}

// @public (undocumented)
export interface ListExceptionPolicies {
    get(options?: ListExceptionPoliciesParameters): StreamableMethod<ListExceptionPolicies200Response | ListExceptionPoliciesDefaultResponse>;
}

// @public
export interface ListExceptionPolicies200Response extends HttpResponse {
    // (undocumented)
    body: PagedExceptionPolicyOutput;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface ListExceptionPoliciesDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface ListExceptionPoliciesDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & ListExceptionPoliciesDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type ListExceptionPoliciesParameters = ListExceptionPoliciesQueryParam & RequestParameters;

// @public (undocumented)
export interface ListExceptionPoliciesQueryParam {
    // (undocumented)
    queryParameters?: ListExceptionPoliciesQueryParamProperties;
}

// @public (undocumented)
export interface ListExceptionPoliciesQueryParamProperties {
    maxpagesize?: number;
}

// @public (undocumented)
export interface ListJobs {
    get(options?: ListJobsParameters): StreamableMethod<ListJobs200Response | ListJobsDefaultResponse>;
}

// @public
export interface ListJobs200Response extends HttpResponse {
    // (undocumented)
    body: PagedRouterJobOutput;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface ListJobsDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface ListJobsDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & ListJobsDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type ListJobsParameters = ListJobsQueryParam & RequestParameters;

// @public (undocumented)
export interface ListJobsQueryParam {
    // (undocumented)
    queryParameters?: ListJobsQueryParamProperties;
}

// @public (undocumented)
export interface ListJobsQueryParamProperties {
    channelId?: string;
    classificationPolicyId?: string;
    maxpagesize?: number;
    queueId?: string;
    scheduledAfter?: Date | string;
    scheduledBefore?: Date | string;
    status?: string;
}

// @public (undocumented)
export interface ListQueues {
    get(options?: ListQueuesParameters): StreamableMethod<ListQueues200Response | ListQueuesDefaultResponse>;
}

// @public
export interface ListQueues200Response extends HttpResponse {
    // (undocumented)
    body: PagedRouterQueueOutput;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface ListQueuesDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface ListQueuesDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & ListQueuesDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type ListQueuesParameters = ListQueuesQueryParam & RequestParameters;

// @public (undocumented)
export interface ListQueuesQueryParam {
    // (undocumented)
    queryParameters?: ListQueuesQueryParamProperties;
}

// @public (undocumented)
export interface ListQueuesQueryParamProperties {
    maxpagesize?: number;
}

// @public (undocumented)
export interface ListWorkers {
    get(options?: ListWorkersParameters): StreamableMethod<ListWorkers200Response | ListWorkersDefaultResponse>;
}

// @public
export interface ListWorkers200Response extends HttpResponse {
    // (undocumented)
    body: PagedRouterWorkerOutput;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface ListWorkersDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface ListWorkersDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & ListWorkersDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export type ListWorkersParameters = ListWorkersQueryParam & RequestParameters;

// @public (undocumented)
export interface ListWorkersQueryParam {
    // (undocumented)
    queryParameters?: ListWorkersQueryParamProperties;
}

// @public (undocumented)
export interface ListWorkersQueryParamProperties {
    channelId?: string;
    hasCapacity?: boolean;
    maxpagesize?: number;
    queueId?: string;
    state?: string;
}

// @public
export interface LongestIdleMode extends DistributionModeParent {
    kind: "longestIdle";
}

// @public
export interface LongestIdleModeOutput extends DistributionModeOutputParent {
    kind: "longestIdle";
}

// @public
export interface ManualReclassifyExceptionAction extends ExceptionActionParent {
    kind: "manualReclassify";
    priority?: number;
    queueId?: string;
    workerSelectors?: Array<RouterWorkerSelector>;
}

// @public
export interface ManualReclassifyExceptionActionOutput extends ExceptionActionOutputParent {
    kind: "manualReclassify";
    priority?: number;
    queueId?: string;
    workerSelectors?: Array<RouterWorkerSelectorOutput>;
}

// @public
export interface OAuth2WebhookClientCredential {
    clientId?: string;
    clientSecret?: string;
}

// @public
export interface OAuth2WebhookClientCredentialOutput {
    clientId?: string;
    clientSecret?: string;
}

// @public
export type PagedClassificationPolicyOutput = Paged<ClassificationPolicyOutput>;

// @public
export type PagedDistributionPolicyOutput = Paged<DistributionPolicyOutput>;

// @public
export type PagedExceptionPolicyOutput = Paged<ExceptionPolicyOutput>;

// @public
export type PagedRouterJobOutput = Paged<RouterJobOutput>;

// @public
export type PagedRouterQueueOutput = Paged<RouterQueueOutput>;

// @public
export type PagedRouterWorkerOutput = Paged<RouterWorkerOutput>;

// @public
export function paginate<TResponse extends PathUncheckedResponse>(client: Client, initialResponse: TResponse, options?: PagingOptions<TResponse>): PagedAsyncIterableIterator<PaginateReturn<TResponse>>;

// @public
export type PaginateReturn<TResult> = TResult extends {
    body: {
        value?: infer TPage;
    };
} ? GetArrayType<TPage> : Array<unknown>;

// @public
export interface PagingOptions<TResponse> {
    customGetPage?: GetPage<PaginateReturn<TResponse>[]>;
}

// @public
export interface PassThroughQueueSelectorAttachment extends QueueSelectorAttachmentParent {
    key: string;
    kind: "passThrough";
    labelOperator: string;
}

// @public
export interface PassThroughQueueSelectorAttachmentOutput extends QueueSelectorAttachmentOutputParent {
    key: string;
    kind: "passThrough";
    labelOperator: string;
}

// @public
export interface PassThroughWorkerSelectorAttachment extends WorkerSelectorAttachmentParent {
    expiresAfterSeconds?: number;
    key: string;
    kind: "passThrough";
    labelOperator: string;
}

// @public
export interface PassThroughWorkerSelectorAttachmentOutput extends WorkerSelectorAttachmentOutputParent {
    expiresAfterSeconds?: number;
    key: string;
    kind: "passThrough";
    labelOperator: string;
}

// @public
export interface QueueAndMatchMode extends JobMatchingModeParent {
    kind: "queueAndMatch";
}

// @public
export interface QueueAndMatchModeOutput extends JobMatchingModeOutputParent {
    kind: "queueAndMatch";
}

// @public
export interface QueueLengthExceptionTrigger extends ExceptionTriggerParent {
    kind: "queueLength";
    threshold: number;
}

// @public
export interface QueueLengthExceptionTriggerOutput extends ExceptionTriggerOutputParent {
    kind: "queueLength";
    threshold: number;
}

// @public
export type QueueSelectorAttachment = QueueSelectorAttachmentParent | ConditionalQueueSelectorAttachment | PassThroughQueueSelectorAttachment | RuleEngineQueueSelectorAttachment | StaticQueueSelectorAttachment | WeightedAllocationQueueSelectorAttachment;

// @public
export type QueueSelectorAttachmentOutput = QueueSelectorAttachmentOutputParent | ConditionalQueueSelectorAttachmentOutput | PassThroughQueueSelectorAttachmentOutput | RuleEngineQueueSelectorAttachmentOutput | StaticQueueSelectorAttachmentOutput | WeightedAllocationQueueSelectorAttachmentOutput;

// @public
export interface QueueSelectorAttachmentOutputParent {
    // (undocumented)
    kind: string;
}

// @public
export interface QueueSelectorAttachmentParent {
    // (undocumented)
    kind: string;
}

// @public
export interface QueueWeightedAllocation {
    queueSelectors: Array<RouterQueueSelector>;
    weight: number;
}

// @public
export interface QueueWeightedAllocationOutput {
    queueSelectors: Array<RouterQueueSelectorOutput>;
    weight: number;
}

// @public (undocumented)
export interface Reclassify {
    post(options?: ReclassifyParameters): StreamableMethod<Reclassify200Response | ReclassifyDefaultResponse>;
}

// @public
export interface Reclassify200Response extends HttpResponse {
    // (undocumented)
    body: ReclassifyJobResultOutput;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface ReclassifyBodyParam {
    body?: ReclassifyJobOptions;
}

// @public (undocumented)
export interface ReclassifyDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface ReclassifyDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & ReclassifyDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public
export interface ReclassifyExceptionAction extends ExceptionActionParent {
    classificationPolicyId?: string;
    kind: "reclassify";
    labelsToUpsert?: Record<string, unknown>;
}

// @public
export interface ReclassifyExceptionActionOutput extends ExceptionActionOutputParent {
    classificationPolicyId?: string;
    kind: "reclassify";
    labelsToUpsert?: Record<string, any>;
}

// @public
export interface ReclassifyJobOptions {
}

// @public
export interface ReclassifyJobResultOutput {
}

// @public (undocumented)
export type ReclassifyParameters = ReclassifyBodyParam & RequestParameters;

// @public
export interface RoundRobinMode extends DistributionModeParent {
    kind: "roundRobin";
}

// @public
export interface RoundRobinModeOutput extends DistributionModeOutputParent {
    kind: "roundRobin";
}

// @public
export interface RouterChannel {
    capacityCostPerJob: number;
    channelId: string;
    maxNumberOfJobs?: number;
}

// @public
export interface RouterChannelOutput {
    capacityCostPerJob: number;
    channelId: string;
    maxNumberOfJobs?: number;
}

// @public
export interface RouterConditionalRequestHeadersOutput {
}

// @public
export interface RouterJob {
    channelId?: string;
    channelReference?: string;
    classificationPolicyId?: string;
    dispositionCode?: string;
    labels?: Record<string, unknown>;
    matchingMode?: JobMatchingMode;
    notes?: Array<RouterJobNote>;
    priority?: number;
    queueId?: string;
    requestedWorkerSelectors?: Array<RouterWorkerSelector>;
    tags?: Record<string, unknown>;
}

// @public
export interface RouterJobAssignment {
    assignedAt: Date | string;
    closedAt?: Date | string;
    completedAt?: Date | string;
    workerId?: string;
}

// @public
export interface RouterJobAssignmentOutput {
    assignedAt: string;
    readonly assignmentId: string;
    closedAt?: string;
    completedAt?: string;
    workerId?: string;
}

// @public
export interface RouterJobNote {
    addedAt?: Date | string;
    message: string;
}

// @public
export interface RouterJobNoteOutput {
    addedAt?: string;
    message: string;
}

// @public
export interface RouterJobOffer {
    capacityCost: number;
    expiresAt?: Date | string;
    jobId: string;
    offeredAt?: Date | string;
}

// @public
export interface RouterJobOfferOutput {
    capacityCost: number;
    expiresAt?: string;
    jobId: string;
    offeredAt?: string;
    readonly offerId: string;
}

// @public
export interface RouterJobOutput {
    readonly assignments?: Record<string, RouterJobAssignmentOutput>;
    readonly attachedWorkerSelectors?: Array<RouterWorkerSelectorOutput>;
    channelId?: string;
    channelReference?: string;
    classificationPolicyId?: string;
    dispositionCode?: string;
    readonly enqueuedAt?: string;
    readonly etag: string;
    readonly id: string;
    labels?: Record<string, any>;
    matchingMode?: JobMatchingModeOutput;
    notes?: Array<RouterJobNoteOutput>;
    priority?: number;
    queueId?: string;
    requestedWorkerSelectors?: Array<RouterWorkerSelectorOutput>;
    readonly scheduledAt?: string;
    readonly status?: string;
    tags?: Record<string, any>;
}

// @public
export interface RouterJobPositionDetailsOutput {
    estimatedWaitTimeMinutes: number;
    jobId: string;
    position: number;
    queueId: string;
    queueLength: number;
}

// @public
export type RouterJobResourceMergeAndPatch = Partial<RouterJob>;

// @public
export interface RouterQueue {
    distributionPolicyId?: string;
    exceptionPolicyId?: string;
    labels?: Record<string, unknown>;
    name?: string;
}

// @public
export interface RouterQueueOutput {
    distributionPolicyId?: string;
    readonly etag: string;
    exceptionPolicyId?: string;
    readonly id: string;
    labels?: Record<string, any>;
    name?: string;
}

// @public
export type RouterQueueResourceMergeAndPatch = Partial<RouterQueue>;

// @public
export interface RouterQueueSelector {
    key: string;
    labelOperator: string;
    value?: unknown;
}

// @public
export interface RouterQueueSelectorOutput {
    key: string;
    labelOperator: string;
    value?: any;
}

// @public
export interface RouterQueueStatisticsOutput {
    estimatedWaitTimeMinutes?: Record<string, number>;
    length: number;
    longestJobWaitTimeMinutes?: number;
    queueId: string;
}

// @public
export type RouterRule = RouterRuleParent | DirectMapRouterRule | ExpressionRouterRule | FunctionRouterRule | StaticRouterRule | WebhookRouterRule;

// @public
export type RouterRuleOutput = RouterRuleOutputParent | DirectMapRouterRuleOutput | ExpressionRouterRuleOutput | FunctionRouterRuleOutput | StaticRouterRuleOutput | WebhookRouterRuleOutput;

// @public
export interface RouterRuleOutputParent {
    // (undocumented)
    kind: string;
}

// @public
export interface RouterRuleParent {
    // (undocumented)
    kind: string;
}

// @public
export interface RouterWorker {
    availableForOffers?: boolean;
    capacity?: number;
    channels?: Array<RouterChannel>;
    labels?: Record<string, unknown>;
    maxConcurrentOffers?: number;
    queues?: string[];
    tags?: Record<string, unknown>;
}

// @public
export interface RouterWorkerAssignment {
    assignedAt: Date | string;
    assignmentId: string;
    capacityCost: number;
    jobId: string;
}

// @public
export interface RouterWorkerAssignmentOutput {
    assignedAt: string;
    assignmentId: string;
    capacityCost: number;
    jobId: string;
}

// @public
export interface RouterWorkerOutput {
    readonly assignedJobs?: Array<RouterWorkerAssignmentOutput>;
    availableForOffers?: boolean;
    capacity?: number;
    channels?: Array<RouterChannelOutput>;
    readonly etag: string;
    readonly id: string;
    labels?: Record<string, any>;
    readonly loadRatio?: number;
    maxConcurrentOffers?: number;
    readonly offers?: Array<RouterJobOfferOutput>;
    queues?: string[];
    readonly state?: string;
    tags?: Record<string, any>;
}

// @public
export type RouterWorkerResourceMergeAndPatch = Partial<RouterWorker>;

// @public
export interface RouterWorkerSelector {
    expedite?: boolean;
    expiresAfterSeconds?: number;
    key: string;
    labelOperator: string;
    value?: unknown;
}

// @public
export interface RouterWorkerSelectorOutput {
    expedite?: boolean;
    expiresAfterSeconds?: number;
    readonly expiresAt?: string;
    key: string;
    labelOperator: string;
    readonly status?: string;
    value?: any;
}

// @public (undocumented)
export interface Routes {
    (path: "/routing/classificationPolicies/{classificationPolicyId}", classificationPolicyId: string): UpsertClassificationPolicy;
    (path: "/routing/classificationPolicies"): ListClassificationPolicies;
    (path: "/routing/distributionPolicies/{distributionPolicyId}", distributionPolicyId: string): UpsertDistributionPolicy;
    (path: "/routing/distributionPolicies"): ListDistributionPolicies;
    (path: "/routing/exceptionPolicies/{exceptionPolicyId}", exceptionPolicyId: string): UpsertExceptionPolicy;
    (path: "/routing/exceptionPolicies"): ListExceptionPolicies;
    (path: "/routing/queues/{queueId}", queueId: string): UpsertQueue;
    (path: "/routing/queues"): ListQueues;
    (path: "/routing/jobs/{jobId}", jobId: string): UpsertJob;
    (path: "/routing/jobs/{jobId}:reclassify", jobId: string): Reclassify;
    (path: "/routing/jobs/{jobId}:cancel", jobId: string): Cancel;
    (path: "/routing/jobs/{jobId}/assignments/{assignmentId}:complete", jobId: string, assignmentId: string): Complete;
    (path: "/routing/jobs/{jobId}/assignments/{assignmentId}:close", jobId: string, assignmentId: string): Close;
    (path: "/routing/jobs"): ListJobs;
    (path: "/routing/jobs/{jobId}/position", jobId: string): GetInQueuePosition;
    (path: "/routing/jobs/{jobId}/assignments/{assignmentId}:unassign", jobId: string, assignmentId: string): Unassign;
    (path: "/routing/workers/{workerId}/offers/{offerId}:accept", workerId: string, offerId: string): Accept;
    (path: "/routing/workers/{workerId}/offers/{offerId}:decline", workerId: string, offerId: string): Decline;
    (path: "/routing/queues/{queueId}/statistics", queueId: string): GetQueueStatistics;
    (path: "/routing/workers/{workerId}", workerId: string): UpsertWorker;
    (path: "/routing/workers"): ListWorkers;
}

// @public
export interface RuleEngineQueueSelectorAttachment extends QueueSelectorAttachmentParent {
    kind: "ruleEngine";
    rule: RouterRule;
}

// @public
export interface RuleEngineQueueSelectorAttachmentOutput extends QueueSelectorAttachmentOutputParent {
    kind: "ruleEngine";
    rule: RouterRuleOutput;
}

// @public
export interface RuleEngineWorkerSelectorAttachment extends WorkerSelectorAttachmentParent {
    kind: "ruleEngine";
    rule: RouterRule;
}

// @public
export interface RuleEngineWorkerSelectorAttachmentOutput extends WorkerSelectorAttachmentOutputParent {
    kind: "ruleEngine";
    rule: RouterRuleOutput;
}

// @public
export interface ScheduleAndSuspendMode extends JobMatchingModeParent {
    kind: "scheduleAndSuspend";
    scheduleAt: Date | string;
}

// @public
export interface ScheduleAndSuspendModeOutput extends JobMatchingModeOutputParent {
    kind: "scheduleAndSuspend";
    scheduleAt: string;
}

// @public
export interface ScoringRuleOptions {
    batchSize?: number;
    descendingOrder?: boolean;
    isBatchScoringEnabled?: boolean;
    scoringParameters?: string[];
}

// @public
export interface ScoringRuleOptionsOutput {
    batchSize?: number;
    descendingOrder?: boolean;
    isBatchScoringEnabled?: boolean;
    scoringParameters?: string[];
}

// @public
export interface StaticQueueSelectorAttachment extends QueueSelectorAttachmentParent {
    kind: "static";
    queueSelector: RouterQueueSelector;
}

// @public
export interface StaticQueueSelectorAttachmentOutput extends QueueSelectorAttachmentOutputParent {
    kind: "static";
    queueSelector: RouterQueueSelectorOutput;
}

// @public
export interface StaticRouterRule extends RouterRuleParent {
    kind: "static";
    value?: unknown;
}

// @public
export interface StaticRouterRuleOutput extends RouterRuleOutputParent {
    kind: "static";
    value?: any;
}

// @public
export interface StaticWorkerSelectorAttachment extends WorkerSelectorAttachmentParent {
    kind: "static";
    workerSelector: RouterWorkerSelector;
}

// @public
export interface StaticWorkerSelectorAttachmentOutput extends WorkerSelectorAttachmentOutputParent {
    kind: "static";
    workerSelector: RouterWorkerSelectorOutput;
}

// @public
export interface SuspendMode extends JobMatchingModeParent {
    kind: "suspend";
}

// @public
export interface SuspendModeOutput extends JobMatchingModeOutputParent {
    kind: "suspend";
}

// @public (undocumented)
export interface Unassign {
    post(options?: UnassignParameters): StreamableMethod<Unassign200Response | UnassignDefaultResponse>;
}

// @public
export interface Unassign200Response extends HttpResponse {
    // (undocumented)
    body: UnassignJobResultOutput;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface UnassignBodyParam {
    body?: UnassignJobOptions;
}

// @public (undocumented)
export interface UnassignDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface UnassignDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & UnassignDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public
export interface UnassignJobOptions {
    suspendMatching?: boolean;
}

// @public
export interface UnassignJobResultOutput {
    jobId: string;
    unassignmentCount: number;
}

// @public (undocumented)
export type UnassignParameters = UnassignBodyParam & RequestParameters;

// @public (undocumented)
export interface UpsertClassificationPolicy {
    delete(options?: DeleteClassificationPolicyParameters): StreamableMethod<DeleteClassificationPolicy204Response | DeleteClassificationPolicyDefaultResponse>;
    get(options?: GetClassificationPolicyParameters): StreamableMethod<GetClassificationPolicy200Response | GetClassificationPolicyDefaultResponse>;
    patch(options: UpsertClassificationPolicyParameters): StreamableMethod<UpsertClassificationPolicy200Response | UpsertClassificationPolicy201Response | UpsertClassificationPolicyDefaultResponse>;
}

// @public (undocumented)
export interface UpsertClassificationPolicy200Headers {
    "last-modified"?: string;
    etag?: string;
}

// @public
export interface UpsertClassificationPolicy200Response extends HttpResponse {
    // (undocumented)
    body: ClassificationPolicyOutput;
    // (undocumented)
    headers: RawHttpHeaders & UpsertClassificationPolicy200Headers;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface UpsertClassificationPolicy201Headers {
    "last-modified"?: string;
    etag?: string;
}

// @public
export interface UpsertClassificationPolicy201Response extends HttpResponse {
    // (undocumented)
    body: ClassificationPolicyOutput;
    // (undocumented)
    headers: RawHttpHeaders & UpsertClassificationPolicy201Headers;
    // (undocumented)
    status: "201";
}

// @public (undocumented)
export interface UpsertClassificationPolicyBodyParam {
    body: ClassificationPolicyResourceMergeAndPatch;
}

// @public (undocumented)
export interface UpsertClassificationPolicyDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface UpsertClassificationPolicyDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & UpsertClassificationPolicyDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export interface UpsertClassificationPolicyHeaderParam {
    // (undocumented)
    headers?: RawHttpHeadersInput & UpsertClassificationPolicyHeaders;
}

// @public (undocumented)
export interface UpsertClassificationPolicyHeaders {
    "If-Match"?: string;
    "If-Unmodified-Since"?: string;
}

// @public (undocumented)
export interface UpsertClassificationPolicyMediaTypesParam {
    contentType: "application/merge-patch+json";
}

// @public (undocumented)
export type UpsertClassificationPolicyParameters = UpsertClassificationPolicyHeaderParam & UpsertClassificationPolicyMediaTypesParam & UpsertClassificationPolicyBodyParam & RequestParameters;

// @public (undocumented)
export interface UpsertDistributionPolicy {
    delete(options?: DeleteDistributionPolicyParameters): StreamableMethod<DeleteDistributionPolicy204Response | DeleteDistributionPolicyDefaultResponse>;
    get(options?: GetDistributionPolicyParameters): StreamableMethod<GetDistributionPolicy200Response | GetDistributionPolicyDefaultResponse>;
    patch(options: UpsertDistributionPolicyParameters): StreamableMethod<UpsertDistributionPolicy200Response | UpsertDistributionPolicy201Response | UpsertDistributionPolicyDefaultResponse>;
}

// @public (undocumented)
export interface UpsertDistributionPolicy200Headers {
    "last-modified"?: string;
    etag?: string;
}

// @public
export interface UpsertDistributionPolicy200Response extends HttpResponse {
    // (undocumented)
    body: DistributionPolicyOutput;
    // (undocumented)
    headers: RawHttpHeaders & UpsertDistributionPolicy200Headers;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface UpsertDistributionPolicy201Headers {
    "last-modified"?: string;
    etag?: string;
}

// @public
export interface UpsertDistributionPolicy201Response extends HttpResponse {
    // (undocumented)
    body: DistributionPolicyOutput;
    // (undocumented)
    headers: RawHttpHeaders & UpsertDistributionPolicy201Headers;
    // (undocumented)
    status: "201";
}

// @public (undocumented)
export interface UpsertDistributionPolicyBodyParam {
    body: DistributionPolicyResourceMergeAndPatch;
}

// @public (undocumented)
export interface UpsertDistributionPolicyDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface UpsertDistributionPolicyDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & UpsertDistributionPolicyDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export interface UpsertDistributionPolicyHeaderParam {
    // (undocumented)
    headers?: RawHttpHeadersInput & UpsertDistributionPolicyHeaders;
}

// @public (undocumented)
export interface UpsertDistributionPolicyHeaders {
    "If-Match"?: string;
    "If-Unmodified-Since"?: string;
}

// @public (undocumented)
export interface UpsertDistributionPolicyMediaTypesParam {
    contentType: "application/merge-patch+json";
}

// @public (undocumented)
export type UpsertDistributionPolicyParameters = UpsertDistributionPolicyHeaderParam & UpsertDistributionPolicyMediaTypesParam & UpsertDistributionPolicyBodyParam & RequestParameters;

// @public (undocumented)
export interface UpsertExceptionPolicy {
    delete(options?: DeleteExceptionPolicyParameters): StreamableMethod<DeleteExceptionPolicy204Response | DeleteExceptionPolicyDefaultResponse>;
    get(options?: GetExceptionPolicyParameters): StreamableMethod<GetExceptionPolicy200Response | GetExceptionPolicyDefaultResponse>;
    patch(options: UpsertExceptionPolicyParameters): StreamableMethod<UpsertExceptionPolicy200Response | UpsertExceptionPolicy201Response | UpsertExceptionPolicyDefaultResponse>;
}

// @public (undocumented)
export interface UpsertExceptionPolicy200Headers {
    "last-modified"?: string;
    etag?: string;
}

// @public
export interface UpsertExceptionPolicy200Response extends HttpResponse {
    // (undocumented)
    body: ExceptionPolicyOutput;
    // (undocumented)
    headers: RawHttpHeaders & UpsertExceptionPolicy200Headers;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface UpsertExceptionPolicy201Headers {
    "last-modified"?: string;
    etag?: string;
}

// @public
export interface UpsertExceptionPolicy201Response extends HttpResponse {
    // (undocumented)
    body: ExceptionPolicyOutput;
    // (undocumented)
    headers: RawHttpHeaders & UpsertExceptionPolicy201Headers;
    // (undocumented)
    status: "201";
}

// @public (undocumented)
export interface UpsertExceptionPolicyBodyParam {
    body: ExceptionPolicyResourceMergeAndPatch;
}

// @public (undocumented)
export interface UpsertExceptionPolicyDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface UpsertExceptionPolicyDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & UpsertExceptionPolicyDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export interface UpsertExceptionPolicyHeaderParam {
    // (undocumented)
    headers?: RawHttpHeadersInput & UpsertExceptionPolicyHeaders;
}

// @public (undocumented)
export interface UpsertExceptionPolicyHeaders {
    "If-Match"?: string;
    "If-Unmodified-Since"?: string;
}

// @public (undocumented)
export interface UpsertExceptionPolicyMediaTypesParam {
    contentType: "application/merge-patch+json";
}

// @public (undocumented)
export type UpsertExceptionPolicyParameters = UpsertExceptionPolicyHeaderParam & UpsertExceptionPolicyMediaTypesParam & UpsertExceptionPolicyBodyParam & RequestParameters;

// @public (undocumented)
export interface UpsertJob {
    delete(options?: DeleteJobParameters): StreamableMethod<DeleteJob204Response | DeleteJobDefaultResponse>;
    get(options?: GetJobParameters): StreamableMethod<GetJob200Response | GetJobDefaultResponse>;
    patch(options: UpsertJobParameters): StreamableMethod<UpsertJob200Response | UpsertJob201Response | UpsertJobDefaultResponse>;
}

// @public (undocumented)
export interface UpsertJob200Headers {
    "last-modified"?: string;
    etag?: string;
}

// @public
export interface UpsertJob200Response extends HttpResponse {
    // (undocumented)
    body: RouterJobOutput;
    // (undocumented)
    headers: RawHttpHeaders & UpsertJob200Headers;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface UpsertJob201Headers {
    "last-modified"?: string;
    etag?: string;
}

// @public
export interface UpsertJob201Response extends HttpResponse {
    // (undocumented)
    body: RouterJobOutput;
    // (undocumented)
    headers: RawHttpHeaders & UpsertJob201Headers;
    // (undocumented)
    status: "201";
}

// @public (undocumented)
export interface UpsertJobBodyParam {
    body: RouterJobResourceMergeAndPatch;
}

// @public (undocumented)
export interface UpsertJobDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface UpsertJobDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & UpsertJobDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export interface UpsertJobHeaderParam {
    // (undocumented)
    headers?: RawHttpHeadersInput & UpsertJobHeaders;
}

// @public (undocumented)
export interface UpsertJobHeaders {
    "If-Match"?: string;
    "If-Unmodified-Since"?: string;
}

// @public (undocumented)
export interface UpsertJobMediaTypesParam {
    contentType: "application/merge-patch+json";
}

// @public (undocumented)
export type UpsertJobParameters = UpsertJobHeaderParam & UpsertJobMediaTypesParam & UpsertJobBodyParam & RequestParameters;

// @public (undocumented)
export interface UpsertQueue {
    delete(options?: DeleteQueueParameters): StreamableMethod<DeleteQueue204Response | DeleteQueueDefaultResponse>;
    get(options?: GetQueueParameters): StreamableMethod<GetQueue200Response | GetQueueDefaultResponse>;
    patch(options: UpsertQueueParameters): StreamableMethod<UpsertQueue200Response | UpsertQueue201Response | UpsertQueueDefaultResponse>;
}

// @public (undocumented)
export interface UpsertQueue200Headers {
    "last-modified"?: string;
    etag?: string;
}

// @public
export interface UpsertQueue200Response extends HttpResponse {
    // (undocumented)
    body: RouterQueueOutput;
    // (undocumented)
    headers: RawHttpHeaders & UpsertQueue200Headers;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface UpsertQueue201Headers {
    "last-modified"?: string;
    etag?: string;
}

// @public
export interface UpsertQueue201Response extends HttpResponse {
    // (undocumented)
    body: RouterQueueOutput;
    // (undocumented)
    headers: RawHttpHeaders & UpsertQueue201Headers;
    // (undocumented)
    status: "201";
}

// @public (undocumented)
export interface UpsertQueueBodyParam {
    body: RouterQueueResourceMergeAndPatch;
}

// @public (undocumented)
export interface UpsertQueueDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface UpsertQueueDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & UpsertQueueDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export interface UpsertQueueHeaderParam {
    // (undocumented)
    headers?: RawHttpHeadersInput & UpsertQueueHeaders;
}

// @public (undocumented)
export interface UpsertQueueHeaders {
    "If-Match"?: string;
    "If-Unmodified-Since"?: string;
}

// @public (undocumented)
export interface UpsertQueueMediaTypesParam {
    contentType: "application/merge-patch+json";
}

// @public (undocumented)
export type UpsertQueueParameters = UpsertQueueHeaderParam & UpsertQueueMediaTypesParam & UpsertQueueBodyParam & RequestParameters;

// @public (undocumented)
export interface UpsertWorker {
    delete(options?: DeleteWorkerParameters): StreamableMethod<DeleteWorker204Response | DeleteWorkerDefaultResponse>;
    get(options?: GetWorkerParameters): StreamableMethod<GetWorker200Response | GetWorkerDefaultResponse>;
    patch(options: UpsertWorkerParameters): StreamableMethod<UpsertWorker200Response | UpsertWorker201Response | UpsertWorkerDefaultResponse>;
}

// @public (undocumented)
export interface UpsertWorker200Headers {
    "last-modified"?: string;
    etag?: string;
}

// @public
export interface UpsertWorker200Response extends HttpResponse {
    // (undocumented)
    body: RouterWorkerOutput;
    // (undocumented)
    headers: RawHttpHeaders & UpsertWorker200Headers;
    // (undocumented)
    status: "200";
}

// @public (undocumented)
export interface UpsertWorker201Headers {
    "last-modified"?: string;
    etag?: string;
}

// @public
export interface UpsertWorker201Response extends HttpResponse {
    // (undocumented)
    body: RouterWorkerOutput;
    // (undocumented)
    headers: RawHttpHeaders & UpsertWorker201Headers;
    // (undocumented)
    status: "201";
}

// @public (undocumented)
export interface UpsertWorkerBodyParam {
    body: RouterWorkerResourceMergeAndPatch;
}

// @public (undocumented)
export interface UpsertWorkerDefaultHeaders {
    "x-ms-error-code"?: string;
}

// @public (undocumented)
export interface UpsertWorkerDefaultResponse extends HttpResponse {
    // (undocumented)
    body: ErrorResponse;
    // (undocumented)
    headers: RawHttpHeaders & UpsertWorkerDefaultHeaders;
    // (undocumented)
    status: string;
}

// @public (undocumented)
export interface UpsertWorkerHeaderParam {
    // (undocumented)
    headers?: RawHttpHeadersInput & UpsertWorkerHeaders;
}

// @public (undocumented)
export interface UpsertWorkerHeaders {
    "If-Match"?: string;
    "If-Unmodified-Since"?: string;
}

// @public (undocumented)
export interface UpsertWorkerMediaTypesParam {
    contentType: "application/merge-patch+json";
}

// @public (undocumented)
export type UpsertWorkerParameters = UpsertWorkerHeaderParam & UpsertWorkerMediaTypesParam & UpsertWorkerBodyParam & RequestParameters;

// @public
export interface WaitTimeExceptionTrigger extends ExceptionTriggerParent {
    kind: "waitTime";
    thresholdSeconds: number;
}

// @public
export interface WaitTimeExceptionTriggerOutput extends ExceptionTriggerOutputParent {
    kind: "waitTime";
    thresholdSeconds: number;
}

// @public
export interface WebhookRouterRule extends RouterRuleParent {
    authorizationServerUri?: string;
    clientCredential?: OAuth2WebhookClientCredential;
    kind: "webhook";
    webhookUri?: string;
}

// @public
export interface WebhookRouterRuleOutput extends RouterRuleOutputParent {
    authorizationServerUri?: string;
    clientCredential?: OAuth2WebhookClientCredentialOutput;
    kind: "webhook";
    webhookUri?: string;
}

// @public
export interface WeightedAllocationQueueSelectorAttachment extends QueueSelectorAttachmentParent {
    allocations: Array<QueueWeightedAllocation>;
    kind: "weightedAllocation";
}

// @public
export interface WeightedAllocationQueueSelectorAttachmentOutput extends QueueSelectorAttachmentOutputParent {
    allocations: Array<QueueWeightedAllocationOutput>;
    kind: "weightedAllocation";
}

// @public
export interface WeightedAllocationWorkerSelectorAttachment extends WorkerSelectorAttachmentParent {
    allocations: Array<WorkerWeightedAllocation>;
    kind: "weightedAllocation";
}

// @public
export interface WeightedAllocationWorkerSelectorAttachmentOutput extends WorkerSelectorAttachmentOutputParent {
    allocations: Array<WorkerWeightedAllocationOutput>;
    kind: "weightedAllocation";
}

// @public
export type WorkerSelectorAttachment = WorkerSelectorAttachmentParent | ConditionalWorkerSelectorAttachment | PassThroughWorkerSelectorAttachment | RuleEngineWorkerSelectorAttachment | StaticWorkerSelectorAttachment | WeightedAllocationWorkerSelectorAttachment;

// @public
export type WorkerSelectorAttachmentOutput = WorkerSelectorAttachmentOutputParent | ConditionalWorkerSelectorAttachmentOutput | PassThroughWorkerSelectorAttachmentOutput | RuleEngineWorkerSelectorAttachmentOutput | StaticWorkerSelectorAttachmentOutput | WeightedAllocationWorkerSelectorAttachmentOutput;

// @public
export interface WorkerSelectorAttachmentOutputParent {
    // (undocumented)
    kind: string;
}

// @public
export interface WorkerSelectorAttachmentParent {
    // (undocumented)
    kind: string;
}

// @public
export interface WorkerWeightedAllocation {
    weight: number;
    workerSelectors: Array<RouterWorkerSelector>;
}

// @public
export interface WorkerWeightedAllocationOutput {
    weight: number;
    workerSelectors: Array<RouterWorkerSelectorOutput>;
}

// (No @packageDocumentation comment for this package)