import type { InjectedDependenciesParam, TeamMembership } from '..';
import type { ODataOptionsWithoutCount, OptionsToResponse } from 'pinejs-client-core';
declare const getTeamMembershipModel: (deps: InjectedDependenciesParam) => {
    /**
     * @summary Get a single team membership
     * @name get
     * @public
     * @function
     * @memberof balena.models.team.membership
     *
     * @description
     * This method returns a single team membership.
     *
     * @param {Number} membershipId - the team membership id
     * @param {Object} [options={}] - extra pine options to use
     * @fulfil {Object} - team membership
     * @returns {Promise}
     *
     * @example
     * balena.models.team.membership.get(5).then(function(membership) {
     * 	console.log(membership);
     * });
     */
    get<T extends ODataOptionsWithoutCount<TeamMembership["Read"]>>(membershipId: number, options?: T): Promise<OptionsToResponse<TeamMembership["Read"], T, undefined>[number]>;
    /**
     * @summary Get all memberships by team
     * @name getAllByTeam
     * @public
     * @function
     * @memberof balena.models.team.membership
     *
     * @description
     * This method returns all team memberships for a specific team.
     *
     * @param {Number} teamId - the team id
     * @param {Object} [options={}] - extra pine options to use
     * @fulfil {Object[]} - team memberships
     * @returns {Promise}
     *
     * @example
     * balena.models.team.membership.getAllByTeam(123).then(function(memberships) {
     * 	console.log(memberships);
     * });
     */
    getAllByTeam<T extends ODataOptionsWithoutCount<TeamMembership["Read"]>>(teamId: number, options?: T): Promise<OptionsToResponse<TeamMembership["Read"], T, undefined>>;
    /**
     * @summary Get all memberships by user
     * @name getAllByUser
     * @public
     * @function
     * @memberof balena.models.team.membership
     *
     * @description
     * This method returns all team memberships for a specific user.
     *
     * @param {String|Number} usernameOrId - the user's username (string) or id (number)
     * @param {Object} [options={}] - extra pine options to use
     * @fulfil {Object[]} - team memberships
     * @returns {Promise}
     *
     * @example
     * balena.models.team.membership.getAllByUser('balena_os').then(function(memberships) {
     * 	console.log(memberships);
     * });
     *
     * @example
     * balena.models.team.membership.getAllByUser(123).then(function(memberships) {
     * 	console.log(memberships);
     * });
     */
    getAllByUser<T extends ODataOptionsWithoutCount<TeamMembership["Read"]>>(usernameOrId: number | string, options?: T): Promise<OptionsToResponse<TeamMembership["Read"], T, undefined>>;
    /**
     * @summary Creates a new membership for a team
     * @name create
     * @public
     * @function
     * @memberof balena.models.team.membership
     *
     * @description This method adds a user to a team by their username.
     *
     * @param {Object} options - membership creation parameters
     * @param {Number} options.team - team id
     * @param {String} options.username - the username of the balena user that will become a member
     *
     * @fulfil {Object} - team membership
     * @returns {Promise}
     *
     * @example
     * balena.models.team.membership.create({ team: 123, username: "user123" }).then(function(membership) {
     * 	console.log(membership);
     * });
     */
    create({ team, username, }: {
        team: number;
        username: string;
    }): Promise<TeamMembership["Read"]>;
    /**
     * @summary Remove a team membership
     * @name remove
     * @public
     * @function
     * @memberof balena.models.team.membership
     *
     * @param {Number|Number[]} idOrIds - team membership id or array of team membership ids
     * @returns {Promise}
     *
     * @example
     * balena.models.team.membership.remove(123);
     *
     * @example
     * balena.models.team.membership.remove([123, 456]);
     */
    remove(idOrIds: number | number[]): Promise<void>;
};
export default getTeamMembershipModel;
