import { GroupsService } from './groups.service';
import { CreateGroupDto } from './dto/create-group.dto';
import { UpdateGroupDto } from './dto/update-group.dto';
import { InviteMemberDto } from './dto/invite-member.dto';
import { GroupDto, GroupDetailDto, MemberDto, BalanceEntryDto } from './dto/group-response.dto';
import { InviteResultDto, PendingInviteDto } from './dto/invite-response.dto';
import { AuthenticatedUser } from '../auth/strategies/jwt.strategy';
export declare class GroupsController {
    private readonly groupsService;
    constructor(groupsService: GroupsService);
    listMyGroups(user: AuthenticatedUser): Promise<GroupDto[]>;
    createGroup(user: AuthenticatedUser, dto: CreateGroupDto): Promise<GroupDetailDto>;
    getGroup(id: string): Promise<GroupDetailDto>;
    updateGroup(id: string, dto: UpdateGroupDto): Promise<GroupDetailDto>;
    deleteGroup(id: string): Promise<{
        message: string;
    }>;
    listMembers(id: string): Promise<MemberDto[]>;
    inviteMember(id: string, dto: InviteMemberDto, user: AuthenticatedUser): Promise<InviteResultDto>;
    listInvites(id: string): Promise<PendingInviteDto[]>;
    cancelInvite(id: string, inviteId: string): Promise<{
        message: string;
    }>;
    removeMember(id: string, userId: string, user: AuthenticatedUser): Promise<{
        message: string;
    }>;
    leaveGroup(id: string, user: AuthenticatedUser): Promise<{
        message: string;
    }>;
    getBalances(id: string): Promise<BalanceEntryDto[]>;
}
