import type * as BalenaSdk from '..';
import type { InjectedDependenciesParam, InjectedOptionsParam } from '..';
declare const getOrganizationModel: (deps: InjectedDependenciesParam, opts: InjectedOptionsParam) => {
    create: (organization: BalenaSdk.PineSubmitBody<BalenaSdk.Organization>) => Promise<BalenaSdk.PinePostResult<BalenaSdk.Organization>>;
    getAll: (options?: BalenaSdk.PineOptions<BalenaSdk.Organization>) => Promise<BalenaSdk.Organization[]>;
    get: (handleOrId: string | number, options?: BalenaSdk.PineOptions<BalenaSdk.Organization>) => Promise<BalenaSdk.Organization>;
    remove: (handleOrId: string | number) => Promise<void>;
    /**
     * @namespace balena.models.organization.membership
     * @memberof balena.models.organization
     */
    membership: {
        get(membershipId: number | BalenaSdk.PineSubmitBody<Pick<BalenaSdk.OrganizationMembership, "user" | "is_member_of__organization">>, options?: BalenaSdk.PineOptions<BalenaSdk.OrganizationMembership>): Promise<BalenaSdk.OrganizationMembership>;
        getAllByOrganization(handleOrId: number | string, options?: BalenaSdk.PineOptions<BalenaSdk.OrganizationMembership>): Promise<BalenaSdk.OrganizationMembership[]>;
        getAllByUser(usernameOrId: number | string, options?: BalenaSdk.PineOptions<BalenaSdk.OrganizationMembership>): Promise<BalenaSdk.OrganizationMembership[]>;
        changeRole(idOrUniqueKey: number | BalenaSdk.PineSubmitBody<Pick<BalenaSdk.OrganizationMembership, "user" | "is_member_of__organization">>, roleName: string): Promise<void>;
        remove(idOrUniqueKey: number | BalenaSdk.PineSubmitBody<Pick<BalenaSdk.OrganizationMembership, "user" | "is_member_of__organization">>): Promise<void>;
        tags: {
            getAllByOrganization(handleOrId: string | number, options?: BalenaSdk.PineOptions<BalenaSdk.OrganizationMembershipTag>): Promise<BalenaSdk.OrganizationMembershipTag[]>;
            getAllByOrganizationMembership: (parentParam: string | number | import("../../typings/utils").Dictionary<unknown>, options?: BalenaSdk.PineOptions<BalenaSdk.OrganizationMembershipTag> | undefined) => Promise<BalenaSdk.OrganizationMembershipTag[]>;
            set: (parentParam: string | number | import("../../typings/utils").Dictionary<unknown>, key: string, value: string) => Promise<void>;
            remove: (parentParam: string | number | import("../../typings/utils").Dictionary<unknown>, key: string) => Promise<void>;
        };
    };
    /**
     * @namespace balena.models.organization.invite
     * @memberof balena.models.organization
     */
    invite: {
        getAll(options?: BalenaSdk.PineOptions<BalenaSdk.OrganizationInvite>): Promise<BalenaSdk.OrganizationInvite[]>;
        getAllByOrganization(handleOrId: number | string, options?: BalenaSdk.PineOptions<BalenaSdk.OrganizationInvite>): Promise<BalenaSdk.OrganizationInvite[]>;
        create(handleOrId: string | number, { invitee, roleName, message }: BalenaSdk.OrganizationInviteOptions): Promise<BalenaSdk.PinePostResult<BalenaSdk.OrganizationInvite>>;
        revoke(id: number): Promise<void>;
        accept(invitationToken: string): Promise<void>;
    };
};
export default getOrganizationModel;
