import { IApi, IApiPayload } from "@etsoo/restclient";
import { OrgCreateRQ } from "./rq/org/OrgCreateRQ";
import { OrgUpdateRQ } from "./rq/org/OrgUpdateRQ";
import { OrgQueryRQ } from "./rq/org/OrgQueryRQ";
import { OrgQueryDto } from "./dto/org/OrgQueryDto";
import { OrgReadDto } from "./dto/org/OrgReadDto";
import { OrgUpdateReadDto } from "./dto/org/OrgUpdateReadDto";
import { OrgListDto } from "./dto/org/OrgListDto";
import { AntiforgeryRequestToken, CustomCulture, EntityApi, IApp, IdResultPayload, ResultPayload, StringIdResultPayload } from "@etsoo/appscript";
import { OrgListRQ } from "./rq/org/OrgListRQ";
import { OrgGetMyRQ } from "./rq/org/OrgGetMyRQ";
import { OrgGetMyData } from "./dto/org/OrgGetMyData";
import { OrgDownloadKind } from "./dto/org/OrgDownloadKind";
import { SendEmailMessage } from "./rq/org/SendEmailMessage";
import { SendSMSMessage } from "./rq/org/SendSMSMessage";
import { SendProfileEmailRQ } from "./rq/org/SendProfileEmailRQ";
import { OrgCreateResourceRQ } from "./rq/org/OrgCreateResourceRQ";
import { OrgQueryResourceRQ } from "./rq/org/OrgQueryResourceRQ";
import { OrgQueryResourceData } from "./dto/org/OrgQueryResourceData";
import { OrgUpdateResourceReadData } from "./dto/org/OrgUpdateResourceReadData";
import { OrgCreateApiRQ } from "./rq/org/OrgCreateApiRQ";
import { OrgUpdateApiRQ } from "./rq/org/OrgUpdateApiRQ";
import { OrgUpdateApiReadDto } from "./dto/org/OrgUpdateApiReadDto";
import { OrgQueryApiRQ } from "./rq/org/OrgQueryApiRQ";
import { OrgQueryApiData } from "./dto/org/OrgQueryApiData";
/**
 * Organization API
 * 机构接口
 */
export declare class OrgApi extends EntityApi {
    /**
     * Constructor
     * @param app Application
     * @param api API
     */
    constructor(app: IApp, api?: IApi);
    /**
     * Create
     * @param rq Request data
     * @param payload Payload
     * @returns Result
     */
    create(rq: OrgCreateRQ, payload?: IdResultPayload): Promise<import("@etsoo/shared").IdActionResult | undefined>;
    /**
     * Create API
     * @param rq Request data
     * @param payload Payload
     * @returns Result
     */
    createApi(rq: OrgCreateApiRQ, payload?: IdResultPayload): Promise<import("@etsoo/shared").IdActionResult | undefined>;
    /**
     * Create resource
     * @param rq Request data
     * @param payload Payload
     * @returns Result
     */
    createResource(rq: OrgCreateResourceRQ, payload?: IdResultPayload): Promise<import("@etsoo/shared").IdActionResult | undefined>;
    /**
     * Delete
     * @param id Id
     * @param payload Payload
     * @returns Result
     */
    delete(id: number, payload?: IdResultPayload): Promise<import("@etsoo/shared").IdActionResult | undefined>;
    /**
     * Download file
     * @kind Download kind
     * @param id id
     * @param payload Payload
     * @returns Result
     */
    downloadFile(kind: OrgDownloadKind, id: number): Promise<void>;
    /**
     * Format HTML content
     * @param content HTML content
     * @param payload Payload
     * @returns Result
     */
    formatHtmlContent(content: string, payload?: IApiPayload<string>): Promise<string | undefined>;
    /**
     * Get current organization's custom resources
     * @param culture Culture
     * @param payload Payload
     * @returns Result
     */
    getCustomResources(culture: string, payload?: IApiPayload<CustomCulture[]>): Promise<CustomCulture[] | undefined>;
    /**
     * Get user's latest accessed organizations
     * @param rq Request data
     * @param payload Payload
     * @returns Result
     */
    getMy(rq: OrgGetMyRQ, payload?: IApiPayload<OrgGetMyData[]>): Promise<OrgGetMyData[] | undefined>;
    /**
     * Leave the organization
     * @param id Organization id
     * @param payload Payload
     * @returns Result
     */
    leave(id: number, payload?: IdResultPayload): Promise<import("@etsoo/shared").IdActionResult | undefined>;
    /**
     * List
     * @param rq Request data
     * @param payload Payload
     * @returns Result
     */
    list(rq: OrgListRQ, payload?: IApiPayload<OrgListDto[]>): Promise<OrgListDto[] | undefined>;
    /**
     * Query
     * @param rq Request data
     * @param payload Payload
     * @returns Result
     */
    query(rq: OrgQueryRQ, payload?: IApiPayload<OrgQueryDto[]>): Promise<OrgQueryDto[] | undefined>;
    /**
     * Query API
     * @param rq Request data
     * @param payload Payload
     * @returns Result
     */
    queryApi(rq: OrgQueryApiRQ, payload?: IApiPayload<OrgQueryApiData[]>): Promise<OrgQueryApiData[] | undefined>;
    /**
     * Query custom resources
     * @param rq Request data
     * @param payload Payload
     * @returns Result
     */
    queryResource(rq: OrgQueryResourceRQ, payload?: IApiPayload<OrgQueryResourceData[]>): Promise<OrgQueryResourceData[] | undefined>;
    /**
     * Read
     * @param id Id
     * @param payload Payload
     * @returns Result
     */
    read(id: number, payload?: IApiPayload<OrgReadDto>): Promise<OrgReadDto | undefined>;
    /**
     * Get Antiforgery request token
     * 获取反伪造请求令牌
     * @param payload Payload
     * @returns Result
     */
    requestToken(payload?: IApiPayload<AntiforgeryRequestToken>): Promise<AntiforgeryRequestToken | undefined>;
    /**
     * Send email
     * 发送邮件
     * @param message Email message
     * @param payload Payload
     * @returns Result
     */
    sendEmail(message: SendEmailMessage, payload?: StringIdResultPayload): Promise<import("@etsoo/shared").IdActionResult<string> | undefined>;
    /**
     * Send SMS
     * 发送短信
     * @param message SMS message
     * @param payload Payload
     * @returns Result
     */
    sendSMS(message: SendSMSMessage, payload?: StringIdResultPayload): Promise<import("@etsoo/shared").IdActionResult<string> | undefined>;
    /**
     * Send profile email
     * @param rq Request data
     * @param payload Payload
     * @returns Result
     */
    sendProfileEmail(rq: SendProfileEmailRQ, payload?: ResultPayload): Promise<import("@etsoo/shared").IActionResult<{}> | undefined>;
    /**
     * Update
     * @param rq Request data
     * @param payload Payload
     * @returns Result
     */
    update(rq: OrgUpdateRQ, payload?: IdResultPayload): Promise<import("@etsoo/shared").IdActionResult | undefined>;
    /**
     * Update API
     * @param rq Request data
     * @param payload Payload
     * @returns Result
     */
    updateApi(rq: OrgUpdateApiRQ, payload?: IdResultPayload): Promise<import("@etsoo/shared").IdActionResult | undefined>;
    /**
     * Update avatar
     * @param id Organization id
     * @param data Avatar form data
     * @param payload Payload
     * @returns Result
     */
    updateAvatar(id: number, data: FormData, payload?: StringIdResultPayload): Promise<import("@etsoo/shared").IdActionResult<string> | undefined>;
    /**
     * Update read
     * @param id Id
     * @param payload Payload
     * @returns Result
     */
    updateRead(id: number, payload?: IApiPayload<OrgUpdateReadDto>): Promise<OrgUpdateReadDto | undefined>;
    /**
     * Update API read
     * @param id Id
     * @param payload Payload
     * @returns Result
     */
    updateApiRead(id: number, payload?: IApiPayload<OrgUpdateApiReadDto>): Promise<OrgUpdateApiReadDto | undefined>;
    /**
     * Upload profle attachments
     * @param id Profile id
     * @param files Files
     * @param payload Payload
     * @returns Result
     */
    uploadProfileFiles(id: number, files: FileList, payload?: ResultPayload): Promise<import("@etsoo/shared").IActionResult<{}> | undefined>;
    /**
     * Update read
     * @param id Id
     * @param payload Payload
     * @returns Result
     */
    updateResourceRead(id: number, payload?: IApiPayload<OrgUpdateResourceReadData>): Promise<OrgUpdateResourceReadData | undefined>;
}
