import * as Core from 'cloudflare/core';
import { APIResource } from 'cloudflare/resource';
import * as AccountsAPI from 'cloudflare/resources/accounts/accounts';
import * as MembersAPI from 'cloudflare/resources/accounts/members';
import * as RolesAPI from 'cloudflare/resources/accounts/roles';
import { V4PagePaginationArray, type V4PagePaginationArrayParams } from 'cloudflare/pagination';
export declare class Accounts extends APIResource {
    members: MembersAPI.Members;
    roles: RolesAPI.Roles;
    /**
     * Update an existing account.
     */
    update(params: AccountUpdateParams, options?: Core.RequestOptions): Core.APIPromise<AccountUpdateResponse>;
    /**
     * List all accounts you have ownership or verified access to.
     */
    list(query?: AccountListParams, options?: Core.RequestOptions): Core.PagePromise<AccountListResponsesV4PagePaginationArray, AccountListResponse>;
    list(options?: Core.RequestOptions): Core.PagePromise<AccountListResponsesV4PagePaginationArray, AccountListResponse>;
    /**
     * Get information about a specific account that you are a member of.
     */
    get(params: AccountGetParams, options?: Core.RequestOptions): Core.APIPromise<AccountGetResponse>;
}
export declare class AccountListResponsesV4PagePaginationArray extends V4PagePaginationArray<AccountListResponse> {
}
export interface Account {
    /**
     * Identifier
     */
    id: string;
    /**
     * Account name
     */
    name: string;
    /**
     * Timestamp for the creation of the account
     */
    created_on?: string;
    /**
     * Account settings
     */
    settings?: Account.Settings;
}
export declare namespace Account {
    /**
     * Account settings
     */
    interface Settings {
        /**
         * Specifies the default nameservers to be used for new zones added to this
         * account.
         *
         * - `cloudflare.standard` for Cloudflare-branded nameservers
         * - `custom.account` for account custom nameservers
         * - `custom.tenant` for tenant custom nameservers
         *
         * See
         * [Custom Nameservers](https://developers.cloudflare.com/dns/additional-options/custom-nameservers/)
         * for more information.
         */
        default_nameservers?: 'cloudflare.standard' | 'custom.account' | 'custom.tenant';
        /**
         * Indicates whether membership in this account requires that Two-Factor
         * Authentication is enabled
         */
        enforce_twofactor?: boolean;
        /**
         * @deprecated: Indicates whether new zones should use the account-level custom
         * nameservers by default.
         *
         * Deprecated in favor of `default_nameservers`.
         */
        use_account_custom_ns_by_default?: boolean;
    }
}
export type AccountUpdateResponse = unknown | string | null;
export type AccountListResponse = unknown;
export type AccountGetResponse = unknown | string | null;
export interface AccountUpdateParams {
    /**
     * Path param:
     */
    account_id: unknown;
    /**
     * Body param: Account name
     */
    name: string;
    /**
     * Body param: Account settings
     */
    settings?: AccountUpdateParams.Settings;
}
export declare namespace AccountUpdateParams {
    /**
     * Account settings
     */
    interface Settings {
        /**
         * Specifies the default nameservers to be used for new zones added to this
         * account.
         *
         * - `cloudflare.standard` for Cloudflare-branded nameservers
         * - `custom.account` for account custom nameservers
         * - `custom.tenant` for tenant custom nameservers
         *
         * See
         * [Custom Nameservers](https://developers.cloudflare.com/dns/additional-options/custom-nameservers/)
         * for more information.
         */
        default_nameservers?: 'cloudflare.standard' | 'custom.account' | 'custom.tenant';
        /**
         * Indicates whether membership in this account requires that Two-Factor
         * Authentication is enabled
         */
        enforce_twofactor?: boolean;
        /**
         * @deprecated: Indicates whether new zones should use the account-level custom
         * nameservers by default.
         *
         * Deprecated in favor of `default_nameservers`.
         */
        use_account_custom_ns_by_default?: boolean;
    }
}
export interface AccountListParams extends V4PagePaginationArrayParams {
    /**
     * Direction to order results.
     */
    direction?: 'asc' | 'desc';
}
export interface AccountGetParams {
    account_id: unknown;
}
export declare namespace Accounts {
    export import Account = AccountsAPI.Account;
    export import AccountUpdateResponse = AccountsAPI.AccountUpdateResponse;
    export import AccountListResponse = AccountsAPI.AccountListResponse;
    export import AccountGetResponse = AccountsAPI.AccountGetResponse;
    export import AccountListResponsesV4PagePaginationArray = AccountsAPI.AccountListResponsesV4PagePaginationArray;
    export import AccountUpdateParams = AccountsAPI.AccountUpdateParams;
    export import AccountListParams = AccountsAPI.AccountListParams;
    export import AccountGetParams = AccountsAPI.AccountGetParams;
    export import Members = MembersAPI.Members;
    export import AccountMember = MembersAPI.AccountMember;
    export import AccountMemberWithID = MembersAPI.AccountMemberWithID;
    export import MemberListResponse = MembersAPI.MemberListResponse;
    export import MemberDeleteResponse = MembersAPI.MemberDeleteResponse;
    export import MemberListResponsesV4PagePaginationArray = MembersAPI.MemberListResponsesV4PagePaginationArray;
    export import MemberCreateParams = MembersAPI.MemberCreateParams;
    export import MemberUpdateParams = MembersAPI.MemberUpdateParams;
    export import MemberListParams = MembersAPI.MemberListParams;
    export import MemberDeleteParams = MembersAPI.MemberDeleteParams;
    export import MemberGetParams = MembersAPI.MemberGetParams;
    export import Roles = RolesAPI.Roles;
    export import Role = RolesAPI.Role;
    export import RoleGetResponse = RolesAPI.RoleGetResponse;
    export import RolesSinglePage = RolesAPI.RolesSinglePage;
    export import RoleListParams = RolesAPI.RoleListParams;
    export import RoleGetParams = RolesAPI.RoleGetParams;
}
//# sourceMappingURL=accounts.d.ts.map