/**
 */
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 UserMapValue extends $tea.Model {
    /**
     * @example
     * user123
     */
    userId?: string;
    /**
     * @example
     * 张三
     */
    name?: string;
    /**
     * @example
     * xxx
     */
    deptId?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class CreateTemplatesHeaders 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 CreateTemplatesRequest extends $tea.Model {
    allowAddReceivers?: boolean;
    allowEdit?: boolean;
    allowGetLocation?: boolean;
    authDeptIds?: string[];
    authUserIds?: string[];
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * 182942
     */
    creator?: string;
    defaultReceivedCids?: string[];
    defaultReceivedMasterLevels?: string[];
    defaultReceivers?: string[];
    /**
     * @remarks
     * This parameter is required.
     */
    fields?: CreateTemplatesRequestFields[];
    /**
     * @example
     * https://xxx.jpg
     */
    logo?: string;
    /**
     * @example
     * 1000
     *
     * **if can be null:**
     * true
     */
    maxWordCount?: number;
    /**
     * @example
     * 1
     *
     * **if can be null:**
     * true
     */
    minWordCount?: number;
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * 工作日报
     */
    name?: string;
    templateManagers?: string[];
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class CreateTemplatesResponseBody extends $tea.Model {
    /**
     * @remarks
     * This parameter is required.
     */
    templateId?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class CreateTemplatesResponse extends $tea.Model {
    headers?: {
        [key: string]: string;
    };
    statusCode?: number;
    body?: CreateTemplatesResponseBody;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class GetSendAndReceiveReportListHeaders 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 GetSendAndReceiveReportListRequest extends $tea.Model {
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * 1507564800000
     */
    endTime?: number;
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * 10
     */
    maxResults?: number;
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * 0
     */
    nextToken?: number;
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * user123
     */
    operationUserId?: string;
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * 1507564800000
     */
    startTime?: number;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class GetSendAndReceiveReportListResponseBody extends $tea.Model {
    dataList?: GetSendAndReceiveReportListResponseBodyDataList[];
    hasMore?: boolean;
    /**
     * @example
     * 10
     */
    maxResults?: number;
    /**
     * @example
     * 10
     */
    nextToken?: number;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class GetSendAndReceiveReportListResponse extends $tea.Model {
    headers?: {
        [key: string]: string;
    };
    statusCode?: number;
    body?: GetSendAndReceiveReportListResponseBody;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class GetSubmitStatisticsHeaders 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 GetSubmitStatisticsRequest extends $tea.Model {
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * 1507564800000
     */
    endTime?: number;
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * user123
     */
    operationUserId?: string;
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * 123456
     */
    remindId?: number;
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * 1507564800000
     */
    startTime?: number;
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * 18xxxxx
     */
    templateId?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class GetSubmitStatisticsResponseBody extends $tea.Model {
    /**
     * @example
     * 3
     */
    shouldRemindTimes?: number;
    /**
     * @example
     * 日报
     */
    templateName?: string;
    userDeptMap?: {
        [key: string]: string;
    };
    userIdCountMap?: {
        [key: string]: number;
    };
    userIdStatusMap?: {
        [key: string]: {
            [key: string]: any;
        };
    };
    userIds?: string[];
    userMap?: {
        [key: string]: UserMapValue;
    };
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class GetSubmitStatisticsResponse extends $tea.Model {
    headers?: {
        [key: string]: string;
    };
    statusCode?: number;
    body?: GetSubmitStatisticsResponseBody;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class QueryRemindResultsHeaders 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 QueryRemindResultsRequest extends $tea.Model {
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * 20
     */
    maxResults?: number;
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * 0
     */
    nextToken?: number;
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * user123
     */
    operationUserId?: string;
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * 18xxxx
     */
    templateId?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class QueryRemindResultsResponseBody extends $tea.Model {
    dataList?: QueryRemindResultsResponseBodyDataList[];
    hasMore?: boolean;
    /**
     * @example
     * 20
     */
    nextToken?: number;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class QueryRemindResultsResponse extends $tea.Model {
    headers?: {
        [key: string]: string;
    };
    statusCode?: number;
    body?: QueryRemindResultsResponseBody;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class QueryReportDetailHeaders 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 QueryReportDetailRequest extends $tea.Model {
    /**
     * @example
     * TEXT
     */
    format?: string;
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * 18XXXX
     */
    reportId?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class QueryReportDetailResponseBody extends $tea.Model {
    content?: QueryReportDetailResponseBodyContent[];
    /**
     * @example
     * 1507564800000
     */
    createTime?: number;
    /**
     * @example
     * user123
     */
    creatorId?: string;
    /**
     * @example
     * 张三
     */
    creatorName?: string;
    /**
     * @example
     * 部门1
     */
    deptName?: string;
    /**
     * @example
     * 1507564800000
     */
    modifiedTime?: number;
    /**
     * @example
     * 这是备注
     */
    remark?: string;
    /**
     * @example
     * 18XXXX
     */
    reportId?: string;
    /**
     * @example
     * 日报
     */
    templateName?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class QueryReportDetailResponse extends $tea.Model {
    headers?: {
        [key: string]: string;
    };
    statusCode?: number;
    body?: QueryReportDetailResponseBody;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class CreateTemplatesRequestFieldsDataValueOpenInfo extends $tea.Model {
    attribute?: {
        [key: string]: string;
    };
    /**
     * @example
     * abc
     */
    openId?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class CreateTemplatesRequestFieldsDataValue extends $tea.Model {
    openInfo?: CreateTemplatesRequestFieldsDataValueOpenInfo;
    options?: string[];
    placeholder?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class CreateTemplatesRequestFields extends $tea.Model {
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * 1
     */
    dataType?: number;
    dataValue?: CreateTemplatesRequestFieldsDataValue;
    /**
     * @remarks
     * This parameter is required.
     */
    fieldName?: string;
    /**
     * @remarks
     * This parameter is required.
     */
    need?: boolean;
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * 1
     */
    order?: number;
    /**
     * @remarks
     * This parameter is required.
     *
     * @example
     * 1
     */
    sort?: number;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class GetSendAndReceiveReportListResponseBodyDataList extends $tea.Model {
    /**
     * @example
     * 1507564800000
     */
    createTime?: number;
    /**
     * @example
     * user123
     */
    creatorId?: string;
    /**
     * @example
     * 张三
     */
    creatorName?: string;
    /**
     * @example
     * 1507564800000
     */
    modifiedTime?: number;
    /**
     * @example
     * xxxxxx
     */
    reportId?: string;
    /**
     * @example
     * 日报
     */
    templateName?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class QueryRemindResultsResponseBodyDataListToGroups extends $tea.Model {
    /**
     * @example
     * xxx群
     */
    title?: string;
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class QueryRemindResultsResponseBodyDataList extends $tea.Model {
    /**
     * @example
     * user123
     */
    creatorId?: string;
    endDateTime?: string[];
    /**
     * @example
     * 18xxxx
     */
    modifierId?: string;
    /**
     * @example
     * 1
     */
    periodType?: number;
    remindId?: number;
    startDateTime?: string[];
    /**
     * @example
     * 123456
     */
    templateId?: string;
    toGroups?: QueryRemindResultsResponseBodyDataListToGroups[];
    static names(): {
        [key: string]: string;
    };
    static types(): {
        [key: string]: any;
    };
    constructor(map?: {
        [key: string]: any;
    });
}
export declare class QueryReportDetailResponseBodyContent extends $tea.Model {
    images?: string[];
    /**
     * @example
     * 今日工作
     */
    key?: string;
    /**
     * @example
     * 0
     */
    sort?: string;
    /**
     * @example
     * 1
     */
    type?: string;
    /**
     * @example
     * 开发工作
     */
    value?: string;
    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 - CreateTemplatesRequest
     * @param headers - CreateTemplatesHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreateTemplatesResponse
     */
    createTemplatesWithOptions(request: CreateTemplatesRequest, headers: CreateTemplatesHeaders, runtime: $Util.RuntimeOptions): Promise<CreateTemplatesResponse>;
    /**
     * 创建模板
     *
     * @param request - CreateTemplatesRequest
     * @returns CreateTemplatesResponse
     */
    createTemplates(request: CreateTemplatesRequest): Promise<CreateTemplatesResponse>;
    /**
     * 查询员工提交和收到的日志列表
     *
     * @param request - GetSendAndReceiveReportListRequest
     * @param headers - GetSendAndReceiveReportListHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetSendAndReceiveReportListResponse
     */
    getSendAndReceiveReportListWithOptions(request: GetSendAndReceiveReportListRequest, headers: GetSendAndReceiveReportListHeaders, runtime: $Util.RuntimeOptions): Promise<GetSendAndReceiveReportListResponse>;
    /**
     * 查询员工提交和收到的日志列表
     *
     * @param request - GetSendAndReceiveReportListRequest
     * @returns GetSendAndReceiveReportListResponse
     */
    getSendAndReceiveReportList(request: GetSendAndReceiveReportListRequest): Promise<GetSendAndReceiveReportListResponse>;
    /**
     * 获取指定周期的提交统计结果
     *
     * @param request - GetSubmitStatisticsRequest
     * @param headers - GetSubmitStatisticsHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetSubmitStatisticsResponse
     */
    getSubmitStatisticsWithOptions(request: GetSubmitStatisticsRequest, headers: GetSubmitStatisticsHeaders, runtime: $Util.RuntimeOptions): Promise<GetSubmitStatisticsResponse>;
    /**
     * 获取指定周期的提交统计结果
     *
     * @param request - GetSubmitStatisticsRequest
     * @returns GetSubmitStatisticsResponse
     */
    getSubmitStatistics(request: GetSubmitStatisticsRequest): Promise<GetSubmitStatisticsResponse>;
    /**
     * 获取创建的统计规则信息
     *
     * @param request - QueryRemindResultsRequest
     * @param headers - QueryRemindResultsHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns QueryRemindResultsResponse
     */
    queryRemindResultsWithOptions(request: QueryRemindResultsRequest, headers: QueryRemindResultsHeaders, runtime: $Util.RuntimeOptions): Promise<QueryRemindResultsResponse>;
    /**
     * 获取创建的统计规则信息
     *
     * @param request - QueryRemindResultsRequest
     * @returns QueryRemindResultsResponse
     */
    queryRemindResults(request: QueryRemindResultsRequest): Promise<QueryRemindResultsResponse>;
    /**
     * 获取日志详情
     *
     * @param request - QueryReportDetailRequest
     * @param headers - QueryReportDetailHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns QueryReportDetailResponse
     */
    queryReportDetailWithOptions(request: QueryReportDetailRequest, headers: QueryReportDetailHeaders, runtime: $Util.RuntimeOptions): Promise<QueryReportDetailResponse>;
    /**
     * 获取日志详情
     *
     * @param request - QueryReportDetailRequest
     * @returns QueryReportDetailResponse
     */
    queryReportDetail(request: QueryReportDetailRequest): Promise<QueryReportDetailResponse>;
}
