import { AbstractService } from '../../common/AbstractService.ts';
import { Org } from '../entity/Org.ts';
import { OrgMember } from '../entity/OrgMember.ts';
export interface CreateOrgCmd {
    name: string;
    description?: string;
    creatorUserId: string;
}
export declare class OrgService extends AbstractService {
    private readonly orgRepository;
    private readonly teamRepository;
    createOrg(cmd: CreateOrgCmd): Promise<Org>;
    removeOrg(orgId: string): Promise<void>;
    findOrgByName(name: string): Promise<Org | null>;
    ensureOrgForScope(scope: string): Promise<Org>;
    addMember(orgId: string, userId: string, role?: 'owner' | 'member'): Promise<OrgMember>;
    removeMember(orgId: string, userId: string): Promise<void>;
    listMembers(orgId: string): Promise<OrgMember[]>;
    requiredOrgOwnerOrAdmin(orgId: string, userId: string, isAdmin: boolean): Promise<void>;
}
