import { type DeleteGroupOptions, type DeleteGroupResult, type IGroupRegistry } from '@opentask/taskin-task-manager'; import { type Group, type GroupId } from '@opentask/taskin-types'; /** * Como o provider de arquivos guarda os grupos. * * Num arquivo proprio, `/.taskin-groups.json`, ao lado do registro de * usuarios — e **nao** dentro de cada tarefa. * * A objecao natural e que a tarefa deixa de ser autocontida. Ela ja nao era: o * registro de usuarios vive separado desde sempre e ninguem considera isso * violacao. O que o registro de usuarios ensina de errado, e que aqui nao se * repete, e gravar o **nome de exibicao** dentro da tarefa: `Assignee: Sidarta * Veloso` em vez do id custou 52 avisos de lint num repositorio consumidor e um * comando de CLI inteiro para limpar. A tarefa guarda `Group: `, e so. */ export declare class FileSystemGroupRegistry implements IGroupRegistry { private readonly reatribuir; /** Onde o registro mora — o `lint` aponta para ele. */ readonly caminho: string; /** * @param taskinDir - O diretorio `.taskin` do projeto * @param reatribuir - Como mover os membros de um grupo. Recebe o grupo que * sai e para onde os membros vao (`undefined` = ficam sem grupo), e devolve * quantos foram afetados. Injetado em vez de embutido porque quem sabe * mexer em tarefa e o provider, nao o registro. */ constructor(taskinDir: string, reatribuir: (de: GroupId, para: GroupId | undefined) => Promise); private ler; private gravar; listGroups(): Promise; findGroup(id: GroupId): Promise; createGroup(group: Group): Promise; renameGroup(id: GroupId, name: string): Promise; /** * Grupo dentro de grupo (task-119). O pai mora no proprio grupo, como * `parentId` no `.taskin-groups.json`; nenhuma tarefa e tocada, porque a * tarefa continua guardando so o grupo mais interno. */ setParent(id: GroupId, parentId: GroupId | undefined): Promise; deleteGroup(id: GroupId, options?: DeleteGroupOptions): Promise; } //# sourceMappingURL=group-registry.d.ts.map