import type { InjectedDependenciesParam, Team } from '..';
import type { ODataOptionsWithoutCount } 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<NoInfer<import("pinejs-client-core").OptionsToResponse<{
        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"]>;
    }, import("../util").MergePineOptions<import("../util").AliasResourceRead, {
        $filter: {
            belongs_to__organization: number | {
                $any: {
                    $alias: string;
                    $expr: {
                        bto: {
                            handle: never;
                        };
                    };
                };
            };
        };
    }, T>, undefined>>>;
    get: <T extends ODataOptionsWithoutCount<Team["Read"]>>(teamId: number, options?: T) => Promise<NonNullable<import("pinejs-client-core").OptionsToResponse<{
        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"]>;
    }, T & {}, 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<NoInfer<import("pinejs-client-core").OptionsToResponse<{
            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"]];
        }, import("../util").MergePineOptions<import("../util").AliasResourceRead, {
            $filter: {
                team: number;
            };
        }, T>, undefined>>>;
        get: <T extends ODataOptionsWithoutCount<import("..").TeamApplicationAccess["Read"]>>(teamApplicationAccessId: number, options?: T) => Promise<NonNullable<import("pinejs-client-core").OptionsToResponse<{
            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"]];
        }, T & {}, 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>;
    };
};
export default getTeamModel;
