import { type APIPromise, APIResource, type FetchParams } from "../../core";
import type { Operator, Problem } from "../../types";
export type ListSubAccountsQueryParams = {
    query?: string;
    include_primary?: boolean;
};
export type ListSubAccountsResponse = Operator[];
export type CreateSubAccountParams = {
    username: string;
    password: string;
    nickname?: string;
    permissions?: {
        create_moto_payments?: boolean;
        create_referral?: boolean;
        full_transaction_history_view?: boolean;
        refund_transactions?: boolean;
    };
};
export type UpdateSubAccountParams = {
    password?: string;
    username?: string;
    disabled?: boolean;
    nickname?: string;
    permissions?: {
        create_moto_payments?: boolean;
        create_referral?: boolean;
        full_transaction_history_view?: boolean;
        refund_transactions?: boolean;
    };
};
export declare class Subaccounts extends APIResource {
    /**
     * Returns list of operators for currently authorized user's merchant.
     */
    listSubAccounts(query?: ListSubAccountsQueryParams, params?: FetchParams): APIPromise<Operator[], unknown>;
    /**
     * Creates new operator for currently authorized users' merchant.
     */
    createSubAccount(body: CreateSubAccountParams, params?: FetchParams): APIPromise<Operator, Problem>;
    /**
     * Returns specific operator.
     */
    compatGetOperator(operatorId: number, params?: FetchParams): APIPromise<Operator, unknown>;
    /**
     * Updates operator. If the operator was disabled and their password is updated they will be unblocked.
     */
    updateSubAccount(operatorId: number, body: UpdateSubAccountParams, params?: FetchParams): APIPromise<Operator, Problem>;
    /**
     * Disable the specified operator for the merchant account.
     */
    deactivateSubAccount(operatorId: number, params?: FetchParams): APIPromise<Operator, unknown>;
}
//# sourceMappingURL=index.d.cts.map