import type { InjectedDependenciesParam, Team } from '..';
import type { ODataOptionsWithoutCount, OptionsToResponse } from 'pinejs-client-core';
declare const getTeamModel: (deps: InjectedDependenciesParam) => {
    create: (organizationSlugOrId: string | number, name: string) => 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"];
        belongs_to__organization: {
            __id: import("..").Organization["Read"]["id"];
        } | [import("..").Organization["Read"]];
        name: import("@balena/sbvr-types").Types["Short Text"]["Read"];
        description: import("@balena/sbvr-types").Types["Text"]["Read"] | null;
        team__grants_access_to__application?: Array<import("..").TeamApplicationAccess["Read"]>;
        team_application_access?: Array<import("..").TeamApplicationAccess["Read"]>;
        grants_access_to__application?: Array<import("..").TeamApplicationAccess["Read"]>;
        user__is_member_of__team?: Array<import("..").TeamMembership["Read"]>;
        team_membership?: Array<import("..").TeamMembership["Read"]>;
        includes__user?: Array<import("..").TeamMembership["Read"]>;
    }>>;
    getAllByOrganization: <T extends ODataOptionsWithoutCount<Team["Read"]>>(organizationSlugOrId: string | number, options?: T) => Promise<OptionsToResponse<Team["Read"], T, undefined>>;
    get: <T extends ODataOptionsWithoutCount<Team["Read"]>>(teamId: number, options?: T) => Promise<OptionsToResponse<Team["Read"], T, undefined>[number]>;
    rename: (teamId: number, newTeamName: string) => Promise<void>;
    remove: (teamId: number) => Promise<void>;
    /**
     * @namespace balena.models.team.applicationAccess
     * @memberof balena.models.team
     */
    applicationAccess: {
        getAllByTeam: <T extends ODataOptionsWithoutCount<import("..").TeamApplicationAccess["Read"]>>(teamId: number, options?: T) => Promise<OptionsToResponse<import("..").TeamApplicationAccess["Read"], T, undefined>>;
        get: <T extends ODataOptionsWithoutCount<import("..").TeamApplicationAccess["Read"]>>(teamApplicationAccessId: number, options?: T) => Promise<OptionsToResponse<import("..").TeamApplicationAccess["Read"], T, undefined>[number]>;
        add: (teamId: number, applicationIdOrSlug: number | string, roleName: import("..").ApplicationMembershipRole["Read"]["name"]) => 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"];
            team: {
                __id: Team["Read"]["id"];
            } | [Team["Read"]];
            grants_access_to__application: {
                __id: import("..").Application["Read"]["id"];
            } | [import("..").Application["Read"]];
            id: import("@balena/sbvr-types").Types["Integer"]["Read"];
            application_membership_role: {
                __id: import("..").ApplicationMembershipRole["Read"]["id"];
            } | [import("..").ApplicationMembershipRole["Read"]];
            application: {
                __id: import("..").Application["Read"]["id"];
            } | [import("..").Application["Read"]];
            is_accessible_by__team: {
                __id: Team["Read"]["id"];
            } | [Team["Read"]];
        }>>;
        update: (teamApplicationAccessId: number, roleName: import("..").ApplicationMembershipRole["Read"]["name"]) => Promise<void>;
        remove: (teamApplicationAccessId: number) => Promise<void>;
    };
    /**
     * @namespace balena.models.team.membership
     * @memberof balena.models.team
     */
    membership: {
        get<T extends ODataOptionsWithoutCount<import("..").TeamMembership["Read"]>>(membershipId: number, options?: T): Promise<OptionsToResponse<import("..").TeamMembership["Read"], T, undefined>[number]>;
        getAllByTeam<T extends ODataOptionsWithoutCount<import("..").TeamMembership["Read"]>>(teamId: number, options?: T): Promise<OptionsToResponse<import("..").TeamMembership["Read"], T, undefined>>;
        getAllByUser<T extends ODataOptionsWithoutCount<import("..").TeamMembership["Read"]>>(usernameOrId: number | string, options?: T): Promise<OptionsToResponse<import("..").TeamMembership["Read"], T, undefined>>;
        create({ team, username, }: {
            team: number;
            username: string;
        }): Promise<import("..").TeamMembership["Read"]>;
        remove(idOrIds: number | number[]): Promise<void>;
    };
};
export default getTeamModel;
