import { type ValidationIssue } from '@opentask/taskin-task-manager'; import { type Group } from '@opentask/taskin-types'; /** Contexto opcional: sem ele, a validacao nao opina sobre o que nao sabe. */ export interface OpcoesDeValidacao { /** Ids que o registro de grupos conhece. Ausente, grupo nao e checado. */ readonly gruposConhecidos?: readonly string[]; } /** * Valida os campos de priorizacao de um arquivo de tarefa. * * Existem dois modos de falha, e os dois sao silenciosos hoje: * * - **O valor descartado.** `Priority: alta` vira `NaN` no parser, que descarta. * A tarefa aparece como nao priorizada, e a informacao some sem aviso. * - **O valor que atravessa.** `Difficulty: 9` passa, porque o parser so confere * se e numero. Chega ate a tela, onde o componente espera de 1 a 5. * * Erro para o que corrompe o dado; aviso para o que so indica inconsistencia. * * Esta funcao **nao corrige**. `Priority` ausente significa "ninguem priorizou * ainda", e escrever um default transformaria ordem alfabetica em decisao * humana, de forma irreversivel. Numerar e ato deliberado, e vive em * `taskin prioritize`. * * @public */ export declare function validarPriorizacao(filePath: string, conteudo: string, opcoes?: OpcoesDeValidacao): ValidationIssue[]; /** Uma tarefa vista pelo conjunto: so o arquivo e o numero importam aqui. */ export interface PrioridadeDeArquivo { readonly file: string; readonly priority?: number; } /** * Aponta prioridades repetidas entre tarefas. * * Isto **so** aparece olhando o conjunto, e por isso nao cabe na validacao de * um arquivo por vez: nenhum arquivo, sozinho, sabe que outro carrega o mesmo * numero. * * E aviso, e nao erro. Duas tarefas com a mesma prioridade nao corrompem nada — * a ordenacao desempata pela ordem de entrada, de forma estavel. Mas indicam * que alguem perdeu uma decisao: as duas foram, em algum momento, a mesma * posicao na fila, e agora a fila nao sabe qual vem antes. * * Ausencia nao e duplicidade: tarefas sem `Priority` nao sao comparadas entre * si, porque "ninguem priorizou ainda" e um estado legitimo e comum. * * @public */ export declare function validarPrioridadesDuplicadas(tarefas: readonly PrioridadeDeArquivo[]): ValidationIssue[]; /** * O aninhamento gravado no registro de grupos (task-119): pai que nao existe e * ciclo sao erro, porque a arvore nao se monta; alem do teto de niveis, aviso, * porque ela se monta e so fica funda demais para ler. * * A regra vem de `problemasDeAninhamento`, a mesma que as operacoes aplicam * antes de gravar. * * @param arquivo - O caminho do registro, para a mensagem apontar onde corrigir */ export declare function validarAninhamentoDosGrupos(arquivo: string, grupos: readonly Group[]): ValidationIssue[]; //# sourceMappingURL=validar-priorizacao.d.ts.map