import { EntityApi, IApi, IApiPayload, IApp, IdResultPayload } from "@etsoo/appscript";
import { DocumentListData } from "./dto/document/DocumentListData";
import { DocumentListRQ } from "./rq/document/DocumentListRQ";
import { DocumentReadData } from "./dto/document/DocumentReadData";
import { DocumentCreateRQ } from "./rq/document/DocumentCreateRQ";
import { DocumentQueryRQ } from "./rq/document/DocumentQueryRQ";
import { DocumentQueryData } from "./dto/document/DocumentQueryData";
import { DocumentUpdateRQ } from "./rq/document/DocumentUpdateRQ";
/**
 * Document API
 */
export declare class DocumentApi 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: DocumentCreateRQ, 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>;
    /**
     * List
     * @param rq Request data
     * @param payload Payload
     * @returns Result
     */
    list(rq: DocumentListRQ, payload: IApiPayload<DocumentListData[]>): Promise<DocumentListData[] | undefined>;
    /**
     * Query
     * @param rq Request data
     * @param payload Payload
     * @returns Result
     */
    query(rq: DocumentQueryRQ, payload?: IApiPayload<DocumentQueryData[]>): Promise<DocumentQueryData[] | undefined>;
    /**
     * Read
     * @param id Id
     * @param payload Payload
     * @returns Result
     */
    read(id: number, payload?: IApiPayload<DocumentReadData>): Promise<DocumentReadData | undefined>;
    /**
     * Update
     * @param rq Request data
     * @param payload Payload
     * @returns Result
     */
    update(rq: DocumentUpdateRQ, payload?: IdResultPayload): Promise<import("@etsoo/shared").IdActionResult | undefined>;
}
