import type { InjectedDependenciesParam, InjectedOptionsParam, Organization } from '..';
import type { ODataOptionsWithoutCount, OptionsToResponse } from 'pinejs-client-core';
declare const getOrganizationModel: (deps: InjectedDependenciesParam, opts: InjectedOptionsParam) => {
    create: (organization: Partial<Organization["Write"]>) => Promise<import("pinejs-client-core/node_modules/@balena/abstract-sql-to-typescript", { with: { "resolution-mode": "import" } }).PickDeferred<{
        created_at: import("@balena/sbvr-types").Types["Date Time"]["Read"];
        id: import("@balena/sbvr-types").Types["Integer"]["Read"];
        name: import("@balena/sbvr-types").Types["Short Text"]["Read"];
        handle: import("@balena/sbvr-types").Types["Short Text"]["Read"];
        company_name: import("@balena/sbvr-types").Types["Text"]["Read"] | null;
        billing_account_code: import("@balena/sbvr-types").Types["Short Text"]["Read"] | null;
        has_past_due_invoice_since__date: import("@balena/sbvr-types").Types["Date Time"]["Read"] | null;
        is_frozen: import("@balena/sbvr-types").Types["Boolean"]["Read"];
        industry: import("@balena/sbvr-types").Types["Short Text"]["Read"] | null;
        website: import("@balena/sbvr-types").Types["Text"]["Read"] | null;
        logo_image: import("@balena/sbvr-types").Types["WebResource"]["Read"] | null;
        is_using__billing_version: import("@balena/sbvr-types").Types["Text"]["Read"] | null;
        is_enforcing_saml_login: import("@balena/sbvr-types").Types["Boolean"]["Read"];
        user__is_member_of__organization?: Array<import("..").OrganizationMembership["Read"]>;
        organization_membership?: Array<import("..").OrganizationMembership["Read"]>;
        includes__user?: Array<import("..").OrganizationMembership["Read"]>;
        includes__user__is_member_of__organization?: Array<import("..").OrganizationMembership["Read"]>;
        includes__organization_membership?: Array<import("..").OrganizationMembership["Read"]>;
        includes__organization__is_authorized_by__identity_provider?: Array<import("..").IdentityProviderMembership["Read"]>;
        includes__identity_provider_membership?: Array<import("..").IdentityProviderMembership["Read"]>;
        organization__has_private_access_to__device_type?: Array<import("..").OrganizationHasPrivateAccessToDeviceType["Read"]>;
        organization__owns_credit_notification_for__feature?: Array<import("..").OrganizationCreditNotification["Read"]>;
        organization_credit_notification?: Array<import("..").OrganizationCreditNotification["Read"]>;
        organization__is_authorized_by__identity_provider?: Array<import("..").IdentityProviderMembership["Read"]>;
        identity_provider_membership?: Array<import("..").IdentityProviderMembership["Read"]>;
        is_of__application?: Array<import("..").Application["Read"]>;
        is_of__organization__is_authorized_by__identity_provider?: Array<import("..").IdentityProviderMembership["Read"]>;
        is_of__identity_provider_membership?: Array<import("..").IdentityProviderMembership["Read"]>;
        application?: Array<import("..").Application["Read"]>;
        owns__team?: Array<import("..").Team["Read"]>;
        owns__credit_bundle?: Array<import("..").CreditBundle["Read"]>;
        invitee__is_invited_to__organization?: Array<import("..").InviteeIsInvitedToOrganization["Read"]>;
        organization_invite?: Array<import("..").InviteeIsInvitedToOrganization["Read"]>;
        invitee?: Array<import("..").InviteeIsInvitedToOrganization["Read"]>;
        includes_legacy_link_to__user?: Array<import("..").User["Read"]>;
        has_private_access_to__device_type?: Array<import("..").OrganizationHasPrivateAccessToDeviceType["Read"]>;
        owns_credit_notification_for__feature?: Array<import("..").OrganizationCreditNotification["Read"]>;
        subscription?: Array<import("..").Subscription["Read"]>;
        is_authorized_by__identity_provider?: Array<import("..").IdentityProviderMembership["Read"]>;
    }>>;
    getAll: <T extends ODataOptionsWithoutCount<Organization["Read"]>>(options?: T) => Promise<OptionsToResponse<Organization["Read"], T, undefined>>;
    get: <T extends ODataOptionsWithoutCount<Organization["Read"]>>(handleOrId: string | number, options?: T) => Promise<OptionsToResponse<Organization["Read"], T, undefined>[number]>;
    remove: (handleOrId: string | number) => Promise<void>;
    /**
     * @namespace balena.models.organization.membership
     * @memberof balena.models.organization
     */
    membership: {
        get<T extends ODataOptionsWithoutCount<import("..").OrganizationMembership["Read"]>>(membershipId: number | import("pinejs-client-core").ResourceAlternateKey<Pick<{
            created_at: import("@balena/sbvr-types").Types["Date Time"]["Read"];
            user: {
                __id: import("..").User["Read"]["id"];
            } | [import("..").User["Read"]];
            is_member_of__organization: {
                __id: Organization["Read"]["id"];
            } | [Organization["Read"]];
            id: import("@balena/sbvr-types").Types["Integer"]["Read"];
            organization_membership_role: {
                __id: import("..").OrganizationMembershipRole["Read"]["id"];
            } | [import("..").OrganizationMembershipRole["Read"]];
            effective_seat_role: import("@balena/sbvr-types").Types["Short Text"]["Read"];
            user__is_member_of__organization__has__tag_key?: Array<import("..").OrganizationMembershipTag["Read"]>;
            organization_membership__has__tag_key?: Array<import("..").OrganizationMembershipTag["Read"]>;
            organization_membership_tag?: Array<import("..").OrganizationMembershipTag["Read"]>;
            organization: {
                __id: Organization["Read"]["id"];
            } | [Organization["Read"]];
            includes__user: {
                __id: import("..").User["Read"]["id"];
            } | [import("..").User["Read"]];
        }, "user" | "is_member_of__organization">>, options?: T): Promise<OptionsToResponse<import("..").OrganizationMembership["Read"], T, undefined>[number]>;
        getAllByOrganization<T extends ODataOptionsWithoutCount<import("..").OrganizationMembership["Read"]>>(handleOrId: number | string, options?: T): Promise<OptionsToResponse<import("..").OrganizationMembership["Read"], T, undefined>>;
        getAllByUser<T extends ODataOptionsWithoutCount<import("..").OrganizationMembership["Read"]>>(usernameOrId: number | string, options?: T): Promise<OptionsToResponse<import("..").OrganizationMembership["Read"], T, undefined>>;
        changeRole(idOrUniqueKey: number | import("pinejs-client-core").ResourceAlternateKey<Pick<{
            created_at: import("@balena/sbvr-types").Types["Date Time"]["Read"];
            user: {
                __id: import("..").User["Read"]["id"];
            } | [import("..").User["Read"]];
            is_member_of__organization: {
                __id: Organization["Read"]["id"];
            } | [Organization["Read"]];
            id: import("@balena/sbvr-types").Types["Integer"]["Read"];
            organization_membership_role: {
                __id: import("..").OrganizationMembershipRole["Read"]["id"];
            } | [import("..").OrganizationMembershipRole["Read"]];
            effective_seat_role: import("@balena/sbvr-types").Types["Short Text"]["Read"];
            user__is_member_of__organization__has__tag_key?: Array<import("..").OrganizationMembershipTag["Read"]>;
            organization_membership__has__tag_key?: Array<import("..").OrganizationMembershipTag["Read"]>;
            organization_membership_tag?: Array<import("..").OrganizationMembershipTag["Read"]>;
            organization: {
                __id: Organization["Read"]["id"];
            } | [Organization["Read"]];
            includes__user: {
                __id: import("..").User["Read"]["id"];
            } | [import("..").User["Read"]];
        }, "user" | "is_member_of__organization">>, roleName: import("..").OrganizationMembershipRole["Read"]["name"]): Promise<void>;
        remove(idOrUniqueKey: number | import("pinejs-client-core").ResourceAlternateKey<Pick<{
            created_at: import("@balena/sbvr-types").Types["Date Time"]["Read"];
            user: {
                __id: import("..").User["Read"]["id"];
            } | [import("..").User["Read"]];
            is_member_of__organization: {
                __id: Organization["Read"]["id"];
            } | [Organization["Read"]];
            id: import("@balena/sbvr-types").Types["Integer"]["Read"];
            organization_membership_role: {
                __id: import("..").OrganizationMembershipRole["Read"]["id"];
            } | [import("..").OrganizationMembershipRole["Read"]];
            effective_seat_role: import("@balena/sbvr-types").Types["Short Text"]["Read"];
            user__is_member_of__organization__has__tag_key?: Array<import("..").OrganizationMembershipTag["Read"]>;
            organization_membership__has__tag_key?: Array<import("..").OrganizationMembershipTag["Read"]>;
            organization_membership_tag?: Array<import("..").OrganizationMembershipTag["Read"]>;
            organization: {
                __id: Organization["Read"]["id"];
            } | [Organization["Read"]];
            includes__user: {
                __id: import("..").User["Read"]["id"];
            } | [import("..").User["Read"]];
        }, "user" | "is_member_of__organization">>): Promise<void>;
        tags: {
            getAllByOrganization<T extends ODataOptionsWithoutCount<import("..").OrganizationMembershipTag["Read"]>>(handleOrId: string | number, options?: T): Promise<OptionsToResponse<import("..").OrganizationMembershipTag["Read"], T, undefined>>;
            getAllByOrganizationMembership: <O extends ODataOptionsWithoutCount<{
                organization_membership: {
                    __id: import("..").OrganizationMembership["Read"]["id"];
                } | [import("..").OrganizationMembership["Read"]];
                tag_key: import("@balena/sbvr-types").Types["Short Text"]["Read"];
                id: import("@balena/sbvr-types").Types["Integer"]["Read"];
                value: import("@balena/sbvr-types").Types["Text"]["Read"];
                user__is_member_of__organization: {
                    __id: import("..").OrganizationMembership["Read"]["id"];
                } | [import("..").OrganizationMembership["Read"]];
            }>>(parentParam: string | number | Record<string, unknown>, options?: O | undefined) => Promise<OptionsToResponse<{
                organization_membership: {
                    __id: import("..").OrganizationMembership["Read"]["id"];
                } | [import("..").OrganizationMembership["Read"]];
                tag_key: import("@balena/sbvr-types").Types["Short Text"]["Read"];
                id: import("@balena/sbvr-types").Types["Integer"]["Read"];
                value: import("@balena/sbvr-types").Types["Text"]["Read"];
                user__is_member_of__organization: {
                    __id: import("..").OrganizationMembership["Read"]["id"];
                } | [import("..").OrganizationMembership["Read"]];
            }, O, undefined>>;
            set: (parentParam: string | number | Record<string, unknown>, key: string, value: string) => Promise<void>;
            remove: (parentParam: string | number | Record<string, unknown>, key: string) => Promise<void>;
        };
    };
    /**
     * @namespace balena.models.organization.invite
     * @memberof balena.models.organization
     */
    invite: {
        getAll<T extends ODataOptionsWithoutCount<{
            invitee: {
                __id: import("..").Invitee["Read"]["id"];
            } | [import("..").Invitee["Read"]];
            is_invited_to__organization: {
                __id: Organization["Read"]["id"];
            } | [Organization["Read"]];
            id: import("@balena/sbvr-types").Types["Integer"]["Read"];
            organization_membership_role: {
                __id: import("..").OrganizationMembershipRole["Read"]["id"];
            } | [import("..").OrganizationMembershipRole["Read"]];
            message: import("@balena/sbvr-types").Types["Text"]["Read"] | null;
            is_created_by__user: {
                __id: import("..").User["Read"]["id"];
            } | [import("..").User["Read"]] | [] | null;
            organization: {
                __id: Organization["Read"]["id"];
            } | [Organization["Read"]];
        }>>(options?: T): Promise<OptionsToResponse<{
            invitee: {
                __id: import("..").Invitee["Read"]["id"];
            } | [import("..").Invitee["Read"]];
            is_invited_to__organization: {
                __id: Organization["Read"]["id"];
            } | [Organization["Read"]];
            id: import("@balena/sbvr-types").Types["Integer"]["Read"];
            organization_membership_role: {
                __id: import("..").OrganizationMembershipRole["Read"]["id"];
            } | [import("..").OrganizationMembershipRole["Read"]];
            message: import("@balena/sbvr-types").Types["Text"]["Read"] | null;
            is_created_by__user: {
                __id: import("..").User["Read"]["id"];
            } | [import("..").User["Read"]] | [] | null;
            organization: {
                __id: Organization["Read"]["id"];
            } | [Organization["Read"]];
        }, T, undefined>>;
        getAllByOrganization<T extends ODataOptionsWithoutCount<{
            invitee: {
                __id: import("..").Invitee["Read"]["id"];
            } | [import("..").Invitee["Read"]];
            is_invited_to__organization: {
                __id: Organization["Read"]["id"];
            } | [Organization["Read"]];
            id: import("@balena/sbvr-types").Types["Integer"]["Read"];
            organization_membership_role: {
                __id: import("..").OrganizationMembershipRole["Read"]["id"];
            } | [import("..").OrganizationMembershipRole["Read"]];
            message: import("@balena/sbvr-types").Types["Text"]["Read"] | null;
            is_created_by__user: {
                __id: import("..").User["Read"]["id"];
            } | [import("..").User["Read"]] | [] | null;
            organization: {
                __id: Organization["Read"]["id"];
            } | [Organization["Read"]];
        }>>(handleOrId: number | string, options?: T): Promise<OptionsToResponse<{
            invitee: {
                __id: import("..").Invitee["Read"]["id"];
            } | [import("..").Invitee["Read"]];
            is_invited_to__organization: {
                __id: Organization["Read"]["id"];
            } | [Organization["Read"]];
            id: import("@balena/sbvr-types").Types["Integer"]["Read"];
            organization_membership_role: {
                __id: import("..").OrganizationMembershipRole["Read"]["id"];
            } | [import("..").OrganizationMembershipRole["Read"]];
            message: import("@balena/sbvr-types").Types["Text"]["Read"] | null;
            is_created_by__user: {
                __id: import("..").User["Read"]["id"];
            } | [import("..").User["Read"]] | [] | null;
            organization: {
                __id: Organization["Read"]["id"];
            } | [Organization["Read"]];
        }, T, undefined>>;
        create(handleOrId: string | number, { invitee, roleName, message }: import("./organization-invite").OrganizationInviteOptions): Promise<import("pinejs-client-core/node_modules/@balena/abstract-sql-to-typescript", { with: { "resolution-mode": "import" } }).PickDeferred<{
            invitee: {
                __id: import("..").Invitee["Read"]["id"];
            } | [import("..").Invitee["Read"]];
            is_invited_to__organization: {
                __id: Organization["Read"]["id"];
            } | [Organization["Read"]];
            id: import("@balena/sbvr-types").Types["Integer"]["Read"];
            organization_membership_role: {
                __id: import("..").OrganizationMembershipRole["Read"]["id"];
            } | [import("..").OrganizationMembershipRole["Read"]];
            message: import("@balena/sbvr-types").Types["Text"]["Read"] | null;
            is_created_by__user: {
                __id: import("..").User["Read"]["id"];
            } | [import("..").User["Read"]] | [] | null;
            organization: {
                __id: Organization["Read"]["id"];
            } | [Organization["Read"]];
        }>>;
        revoke(id: number): Promise<void>;
        accept(invitationToken: string): Promise<void>;
    };
};
export default getOrganizationModel;
