import type { AxiosInstance } from "axios";
import type fs from "fs";
import type { NewInstanceInput } from "./axios-utils";
interface CreateAppInput {
    name: string;
}
interface CreateAppOutput {
    app: string;
    revision: string;
}
interface AddFormFieldInput {
    app: string;
    properties: any[];
}
export interface AddFormFieldOutput {
}
interface DeployInput {
    apps: Array<{
        app: string;
    }>;
}
interface DeployStatusInput {
    apps: string[];
}
interface DeployStatusOutput {
    apps: Array<{
        app: string;
        status: "PROCESSING" | "SUCCESS" | "FAIL" | "CANCEL";
    }>;
}
interface UploadFileInput {
    data: fs.ReadStream;
    fileName: string;
    contentType: string;
}
interface UploadFileOutput {
    fileKey: string;
}
interface JsCustomizeInput {
    app: string;
    scope: string;
    desktop: {
        js: Array<{
            type: string;
            file: {
                fileKey: string;
            };
        }>;
    };
}
export interface JsCustomizeOutput {
    revision: string;
}
interface AddRecordInput {
    app: string;
    record: any;
}
export interface AddRecordOutput {
    id: string;
    revision: string;
}
export declare class SetUpTestAppClient {
    readonly client: AxiosInstance;
    constructor(input: NewInstanceInput);
    requestCreateNewApp(input: CreateAppInput): Promise<CreateAppOutput>;
    requestAddFormField(input: AddFormFieldInput): Promise<AddFormFieldOutput>;
    requestUploadFile(input: UploadFileInput): Promise<UploadFileOutput>;
    requestJsCustomizeUpdate(input: JsCustomizeInput): Promise<JsCustomizeOutput>;
    requestDepoy(input: DeployInput): Promise<any>;
    requestGetDeployStatus(input: DeployStatusInput): Promise<DeployStatusOutput>;
    requestAddRecord(input: AddRecordInput): Promise<AddRecordOutput>;
}
export {};
