import { APIResource } from "../../core/resource.mjs";
import * as Shared from "../shared.mjs";
import * as MembersAPI from "../accounts/members.mjs";
import { APIPromise } from "../../core/api-promise.mjs";
import { PagePromise, V4PagePaginationArray, type V4PagePaginationArrayParams } from "../../core/pagination.mjs";
import { RequestOptions } from "../../internal/request-options.mjs";
export declare class BaseOrganizations extends APIResource {
    static readonly _key: readonly ['user', 'organizations'];
    /**
     * Lists organizations the user is associated with.
     *
     * @deprecated
     */
    list(query?: OrganizationListParams | null | undefined, options?: RequestOptions): PagePromise<OrganizationsV4PagePaginationArray, Organization>;
    /**
     * Removes association to an organization.
     *
     * @deprecated
     */
    delete(organizationID: string, options?: RequestOptions): APIPromise<OrganizationDeleteResponse>;
    /**
     * Gets a specific organization the user is associated with.
     *
     * @deprecated
     */
    get(organizationID: string, options?: RequestOptions): APIPromise<OrganizationGetResponse>;
}
export declare class Organizations extends BaseOrganizations {
}
export type OrganizationsV4PagePaginationArray = V4PagePaginationArray<Organization>;
export interface Organization {
    /**
     * Identifier
     */
    id?: string;
    /**
     * Organization name.
     */
    name?: string;
    /**
     * Access permissions for this User.
     */
    permissions?: Array<Shared.Permission>;
    /**
     * List of roles that a user has within an organization.
     */
    roles?: Array<string>;
    /**
     * Whether the user is a member of the organization or has an invitation pending.
     */
    status?: MembersAPI.Status;
}
export interface OrganizationDeleteResponse {
    /**
     * Identifier
     */
    id?: string;
}
export type OrganizationGetResponse = unknown;
export interface OrganizationListParams extends V4PagePaginationArrayParams {
    /**
     * Direction to order organizations.
     */
    direction?: 'asc' | 'desc';
    /**
     * Whether to match all search requirements or at least one (any).
     */
    match?: 'any' | 'all';
    /**
     * Organization name.
     */
    name?: string;
    /**
     * Field to order organizations by.
     */
    order?: 'id' | 'name' | 'status';
    /**
     * Whether the user is a member of the organization or has an inivitation pending.
     */
    status?: 'member' | 'invited';
}
export declare namespace Organizations {
    export { type Organization as Organization, type OrganizationDeleteResponse as OrganizationDeleteResponse, type OrganizationGetResponse as OrganizationGetResponse, type OrganizationsV4PagePaginationArray as OrganizationsV4PagePaginationArray, type OrganizationListParams as OrganizationListParams, };
}
//# sourceMappingURL=organizations.d.mts.map