/**
 */
import * as $Util from '@alicloud/tea-util';
import OpenApi, * as $OpenApi from '@alicloud/openapi-client';
import * as $tea from '@alicloud/tea-typescript';
export declare class FinishHeaders extends $tea.Model {
    commonHeaders?: {
        [key: string]: string;
    };
    xAcsDingtalkAccessToken?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class FinishRequest extends $tea.Model {
    /**
     * @remarks
     * This parameter is required.
     */
    conversationToken?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class FinishResponseBody extends $tea.Model {
    result?: FinishResponseBodyResult;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class FinishResponse extends $tea.Model {
    headers?: {
        [key: string]: string;
    };
    statusCode?: number;
    body?: FinishResponseBody;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class PrepareHeaders extends $tea.Model {
    commonHeaders?: {
        [key: string]: string;
    };
    xAcsDingtalkAccessToken?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class PrepareRequest extends $tea.Model {
    content?: string;
    /**
     * @remarks
     * This parameter is required.
     */
    contentType?: string;
    openConversationId?: string;
    unionId?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class PrepareResponseBody extends $tea.Model {
    result?: PrepareResponseBodyResult;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class PrepareResponse extends $tea.Model {
    headers?: {
        [key: string]: string;
    };
    statusCode?: number;
    body?: PrepareResponseBody;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class ReplyHeaders extends $tea.Model {
    commonHeaders?: {
        [key: string]: string;
    };
    xAcsDingtalkAccessToken?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class ReplyRequest extends $tea.Model {
    content?: string;
    /**
     * @remarks
     * This parameter is required.
     */
    contentType?: string;
    /**
     * @remarks
     * This parameter is required.
     */
    conversationToken?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class ReplyResponseBody extends $tea.Model {
    result?: ReplyResponseBodyResult;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class ReplyResponse extends $tea.Model {
    headers?: {
        [key: string]: string;
    };
    statusCode?: number;
    body?: ReplyResponseBody;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class SendHeaders extends $tea.Model {
    commonHeaders?: {
        [key: string]: string;
    };
    xAcsDingtalkAccessToken?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class SendRequest extends $tea.Model {
    content?: string;
    /**
     * @remarks
     * This parameter is required.
     */
    contentType?: string;
    openConversationId?: string;
    unionId?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class SendResponseBody extends $tea.Model {
    /**
     * @remarks
     * This parameter is required.
     */
    success?: boolean;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class SendResponse extends $tea.Model {
    headers?: {
        [key: string]: string;
    };
    statusCode?: number;
    body?: SendResponseBody;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class UpdateHeaders extends $tea.Model {
    commonHeaders?: {
        [key: string]: string;
    };
    xAcsDingtalkAccessToken?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class UpdateRequest extends $tea.Model {
    /**
     * @remarks
     * This parameter is required.
     */
    content?: string;
    /**
     * @remarks
     * This parameter is required.
     */
    contentType?: string;
    /**
     * @remarks
     * This parameter is required.
     */
    conversationToken?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class UpdateResponseBody extends $tea.Model {
    result?: UpdateResponseBodyResult;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class UpdateResponse extends $tea.Model {
    headers?: {
        [key: string]: string;
    };
    statusCode?: number;
    body?: UpdateResponseBody;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class FinishResponseBodyResult extends $tea.Model {
    success?: boolean;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class PrepareResponseBodyResult extends $tea.Model {
    conversationToken?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class ReplyResponseBodyResult extends $tea.Model {
    success?: boolean;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class UpdateResponseBodyResult extends $tea.Model {
    success?: boolean;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export default class Client extends OpenApi {
    constructor(config: $OpenApi.Config);
    /**
     * 在主动模式下完结会话框
     *
     * @param request - FinishRequest
     * @param headers - FinishHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns FinishResponse
     */
    finishWithOptions(request: FinishRequest, headers: FinishHeaders, runtime: $Util.RuntimeOptions): Promise<FinishResponse>;
    /**
     * 在主动模式下完结会话框
     *
     * @param request - FinishRequest
     * @returns FinishResponse
     */
    finish(request: FinishRequest): Promise<FinishResponse>;
    /**
     * 在主动模式下准备会话框
     *
     * @param request - PrepareRequest
     * @param headers - PrepareHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns PrepareResponse
     */
    prepareWithOptions(request: PrepareRequest, headers: PrepareHeaders, runtime: $Util.RuntimeOptions): Promise<PrepareResponse>;
    /**
     * 在主动模式下准备会话框
     *
     * @param request - PrepareRequest
     * @returns PrepareResponse
     */
    prepare(request: PrepareRequest): Promise<PrepareResponse>;
    /**
     * 在回复模式下更新会话框
     *
     * @param request - ReplyRequest
     * @param headers - ReplyHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ReplyResponse
     */
    replyWithOptions(request: ReplyRequest, headers: ReplyHeaders, runtime: $Util.RuntimeOptions): Promise<ReplyResponse>;
    /**
     * 在回复模式下更新会话框
     *
     * @param request - ReplyRequest
     * @returns ReplyResponse
     */
    reply(request: ReplyRequest): Promise<ReplyResponse>;
    /**
     * 直接发送消息
     *
     * @param request - SendRequest
     * @param headers - SendHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SendResponse
     */
    sendWithOptions(request: SendRequest, headers: SendHeaders, runtime: $Util.RuntimeOptions): Promise<SendResponse>;
    /**
     * 直接发送消息
     *
     * @param request - SendRequest
     * @returns SendResponse
     */
    send(request: SendRequest): Promise<SendResponse>;
    /**
     * 在主动模式下更新会话框
     *
     * @param request - UpdateRequest
     * @param headers - UpdateHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateResponse
     */
    updateWithOptions(request: UpdateRequest, headers: UpdateHeaders, runtime: $Util.RuntimeOptions): Promise<UpdateResponse>;
    /**
     * 在主动模式下更新会话框
     *
     * @param request - UpdateRequest
     * @returns UpdateResponse
     */
    update(request: UpdateRequest): Promise<UpdateResponse>;
}
