import { Team } from '../core/entity/Team.ts';
import { TeamMember } from '../core/entity/TeamMember.ts';
import { TeamPackage } from '../core/entity/TeamPackage.ts';
import { AbstractRepository } from './AbstractRepository.ts';
export declare class TeamRepository extends AbstractRepository {
    private readonly Team;
    private readonly TeamMember;
    private readonly TeamPackage;
    findTeam(orgId: string, name: string): Promise<Team | null>;
    findTeamByTeamId(teamId: string): Promise<Team | null>;
    listTeamsByOrgId(orgId: string): Promise<Team[]>;
    saveTeam(team: Team): Promise<void>;
    removeTeam(teamId: string): Promise<void>;
    removeAllTeamsByOrgId(orgId: string): Promise<void>;
    listTeamsByUserId(userId: string): Promise<Team[]>;
    listTeamsByUserIdAndOrgId(userId: string, orgId: string): Promise<{
        team: Team;
        role: string;
    }[]>;
    findMember(teamId: string, userId: string): Promise<TeamMember | null>;
    addMember(member: TeamMember): Promise<void>;
    removeMember(teamId: string, userId: string): Promise<void>;
    removeMemberFromAllTeams(orgId: string, userId: string): Promise<void>;
    listMembers(teamId: string): Promise<TeamMember[]>;
    removeAllMembersByTeamId(teamId: string): Promise<void>;
    removeAllMembersByOrgId(orgId: string): Promise<void>;
    findPackage(teamId: string, packageId: string): Promise<TeamPackage | null>;
    addPackage(teamPackage: TeamPackage): Promise<void>;
    removePackage(teamId: string, packageId: string): Promise<void>;
    listPackages(teamId: string): Promise<TeamPackage[]>;
    removeAllPackagesByTeamId(teamId: string): Promise<void>;
    removeTeamCascade(teamId: string): Promise<void>;
    removeAllPackagesByOrgId(orgId: string): Promise<void>;
    hasAnyTeamBinding(packageId: string): Promise<boolean>;
    hasPackageAccess(packageId: string, userId: string): Promise<boolean>;
}
