import type { BaseGroupMessageDTO } from "../DTOs/GroupMessageDTO.js";
import { type SimpleResponseDTO } from "../DTOs/SimpleResponseDTO.js";
import { BaseRepository, type BaseRepositoryConstructorParam } from "./BaseRepository.js";
export declare class GroupRepository extends BaseRepository {
    constructor(baseArgs: BaseRepositoryConstructorParam);
    /**
     * @throws any `fetch()` related error
     * @throws any `Response.json()` related error
     * @throws any {@link sessionRepository} related Error
     */
    create(groupName: string): Promise<SimpleResponseDTO>;
    /**
     * @throws any `fetch()` related error
     * @throws any `Response.json()` related error
     * @throws any {@link sessionRepository} related Error
     */
    join(joinCode: string): Promise<SimpleResponseDTO>;
    /**
     * @throws any `fetch()` related error
     * @throws any `Response.json()` related error
     * @throws any {@link sessionRepository} related Error
     */
    sendMessage(newMessageDTO: BaseGroupMessageDTO): Promise<SimpleResponseDTO>;
    /**
     * @throws any `fetch()` related error
     * @throws any `Response.json()` related error
     * @throws any {@link sessionRepository} related Error
     */
    receiveExistingMessages(): Promise<SimpleResponseDTO>;
    /**
     * @throws any `fetch()` related error
     * @throws any `Response.json()` related error
     * @throws any {@link sessionRepository} related Error
     */
    receiveNewMessages(): Promise<SimpleResponseDTO>;
    /**
     * @throws any `fetch()` related error
     * @throws any `Response.json()` related error
     * @throws any {@link sessionRepository} related Error
     */
    leaveCurrentGroup(): Promise<SimpleResponseDTO>;
}
//# sourceMappingURL=GroupRepository.d.ts.map