export declare type method = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
export declare type instanceType = "application" | "client";
export declare type requestParameters = {
    include?: string[] | string;
    filters?: {
        key: string;
        value: string | number | boolean;
    }[];
    sort?: {
        by: string;
        reverse?: boolean;
    };
    per_page?: number;
    page?: number;
    other?: {
        key: string;
        value: any;
    }[];
};
export declare type callOptions = {
    endpoint?: string;
    parameters?: requestParameters;
    method?: method;
    body?: any;
};
export declare type createUserParams = {
    external_id?: string;
    email: string;
    username: string;
    first_name: string;
    last_name: string;
    password?: string;
    root_admin?: boolean;
    language?: string;
};
export declare type updateUserParams = {
    external_id?: string;
    email: string;
    username: string;
    first_name: string;
    last_name: string;
    language?: string;
    password?: string;
    root_admin?: boolean;
};
export declare type createNodeParams = {
    name: string;
    description?: string;
    public?: boolean;
    behind_proxy?: boolean;
    location_id: number;
    fqdn: string;
    scheme: "http" | "https";
    memory: number;
    memory_overallocate: number;
    disk: number;
    disk_overallocate: number;
    upload_size: number;
    daemon_base?: string;
    daemon_sftp: number;
    daemon_listen: number;
    maintenance_mode?: boolean;
};
export declare type updateNodeParams = {
    name: string;
    description?: string;
    location_id: number;
    public?: boolean;
    fqdn: string;
    scheme: "http" | "https";
    behind_proxy: boolean;
    maintenance_mode: boolean;
    memory: number;
    memory_overallocate: number;
    disk: number;
    disk_overallocate: number;
    upload_size: number;
    daemon_base?: string;
    daemon_sftp: number;
    daemon_listen: number;
};
export declare type createAllocationParams = {
    ip: string;
    alias?: string;
    ports: string[];
};
export declare type createOrUpdateLocationParams = {
    short: string;
    long: string;
};
export declare type updateServerDetailsParams = {
    name: string;
    user: number;
    external_id?: string;
    description?: string;
};
export declare type updateServerBuildParams = {
    allocation: number;
    memory: number;
    swap: number;
    io: number;
    cpu: number;
    disk: number;
    threads: number | null;
    feature_limits: {
        databases: number;
        backups: number;
        allocations?: number;
    };
    oom_killer?: boolean;
};
export declare type updateServerStartupParams = {
    startup: string;
    environment: {
        [key: string]: any;
    };
    egg: number;
    image: string;
    skip_scripts: boolean;
};
export declare type createServerParams = {
    external_id?: string;
    name: string;
    description?: string;
    user: number;
    egg: number;
    docker_image?: string;
    startup: string;
    environment: {
        [key: string]: any;
    };
    limits: {
        memory: number;
        swap: number;
        io: number;
        cpu: number;
        disk: number;
    };
    feature_limits: {
        allocations: number;
        databases: number;
        backups: number;
    };
    allocation?: {
        default?: number;
        additional?: number[];
    };
    deploy?: {
        locations: number[];
        deducared_ip: boolean;
        port_range: string;
    };
    start_on_completion?: boolean;
    skip_scripts?: boolean;
    oom_killer?: boolean;
};
export declare type createApplicationDatabaseParams = {
    database: string;
    remote: string;
    host: string;
};
export declare type websocketCredentials = {
    token: string;
    socket: string;
};
export declare type resourceUsage = {
    current_state: string;
    is_suspended: boolean;
    resources: {
        memory_bytes: number;
        cpu_absolute: number;
        disk_bytes: number;
        netword_rx_bytes: number;
        network_tx_bytes: number;
    };
};
export declare type powerSignal = "start" | "stop" | "restart" | "kill";
export declare type createClientDatabaseParams = Omit<createApplicationDatabaseParams, "host">;
export declare type createScheduleParams = {
    name: string;
    is_active: boolean;
    minute: string;
    hour: string;
    day_of_week: string;
    day_of_month: string;
};
export declare type updateScheduleParams = {
    name: string;
    is_active?: boolean;
    minute: string;
    hour: string;
    day_of_week: string;
    day_of_month: string;
};
export declare type createOrUpdateTaskParams = {
    action: "command" | "power" | "backup";
    payload: string;
    time_offset: number;
};
export declare enum Permission {
    "websocket.connect" = 0,
    "control.console" = 1,
    "control.start" = 2,
    "control.stop" = 3,
    "control.restart" = 4,
    "database.read" = 5,
    "database.create" = 6,
    "database.update" = 7,
    "database.delete" = 8,
    "database.view_password" = 9,
    "schedule.read" = 10,
    "schedule.create" = 11,
    "schedule.update" = 12,
    "schedule.delete" = 13,
    "user.read" = 14,
    "user.create" = 15,
    "user.update" = 16,
    "user.delete" = 17,
    "backup.read" = 18,
    "backup.create" = 19,
    "backup.delete" = 20,
    "backup.download" = 21,
    "backup.restore" = 22,
    "allocation.read" = 23,
    "allocation.create" = 24,
    "allocation.update" = 25,
    "allocation.delete" = 26,
    "file.read" = 27,
    "file.read-content" = 28,
    "file.create" = 29,
    "file.update" = 30,
    "file.delete" = 31,
    "file.archive" = 32,
    "file.sftp" = 33,
    "startup.read" = 34,
    "startup.update" = 35,
    "startup.docker-image" = 36,
    "settings.rename" = 37,
    "settings.reinstall" = 38
}
export declare type createSubuserParams = {
    email: string;
    permissions: (Permission | string)[];
};
export declare type updateSubuserParams = Pick<createSubuserParams, "permissions">;
export declare type startupData = {
    startup_command: string;
    raw_startup_command: string;
    docker_images: string[];
};
export declare type createClientApiKeyParams = {
    description: string;
    allowed_ips?: string[];
};
