import { z } from 'zod'; /** * Tipos de critérios suportados pelo framework */ export declare const CriterionTypeSchema: z.ZodEnum<["command", "file", "content", "endpoint", "coverage", "build"]>; export type CriterionType = z.infer; /** * Verificação de critério de comando */ export declare const CommandVerificationSchema: z.ZodObject<{ type: z.ZodLiteral<"command">; command: z.ZodString; expectedExitCode: z.ZodDefault; expectedOutput: z.ZodOptional; timeout: z.ZodOptional; }, "strip", z.ZodTypeAny, { command: string; type: "command"; expectedExitCode: number; expectedOutput?: string | undefined; timeout?: number | undefined; }, { command: string; type: "command"; expectedExitCode?: number | undefined; expectedOutput?: string | undefined; timeout?: number | undefined; }>; export type CommandVerification = z.infer; /** * Verificação de existência de arquivo */ export declare const FileVerificationSchema: z.ZodObject<{ type: z.ZodLiteral<"file">; path: z.ZodString; shouldExist: z.ZodDefault; }, "strip", z.ZodTypeAny, { path: string; type: "file"; shouldExist: boolean; }, { path: string; type: "file"; shouldExist?: boolean | undefined; }>; export type FileVerification = z.infer; /** * Verificação de conteúdo de arquivo */ export declare const ContentVerificationSchema: z.ZodObject<{ type: z.ZodLiteral<"content">; path: z.ZodString; pattern: z.ZodString; shouldMatch: z.ZodDefault; }, "strip", z.ZodTypeAny, { path: string; type: "content"; pattern: string; shouldMatch: boolean; }, { path: string; type: "content"; pattern: string; shouldMatch?: boolean | undefined; }>; export type ContentVerification = z.infer; /** * Verificação de endpoint HTTP */ export declare const EndpointVerificationSchema: z.ZodObject<{ type: z.ZodLiteral<"endpoint">; url: z.ZodString; method: z.ZodDefault>; expectedStatus: z.ZodNumber; timeout: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "endpoint"; url: string; method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH"; expectedStatus: number; timeout?: number | undefined; }, { type: "endpoint"; url: string; expectedStatus: number; timeout?: number | undefined; method?: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | undefined; }>; export type EndpointVerification = z.infer; /** * Verificação de cobertura de testes */ export declare const CoverageVerificationSchema: z.ZodObject<{ type: z.ZodLiteral<"coverage">; metric: z.ZodEnum<["lines", "functions", "branches", "statements"]>; minPercentage: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "coverage"; metric: "lines" | "functions" | "branches" | "statements"; minPercentage: number; }, { type: "coverage"; metric: "lines" | "functions" | "branches" | "statements"; minPercentage: number; }>; export type CoverageVerification = z.infer; /** * Verificação de build */ export declare const BuildVerificationSchema: z.ZodObject<{ type: z.ZodLiteral<"build">; command: z.ZodString; allowWarnings: z.ZodDefault; }, "strip", z.ZodTypeAny, { command: string; type: "build"; allowWarnings: boolean; }, { command: string; type: "build"; allowWarnings?: boolean | undefined; }>; export type BuildVerification = z.infer; /** * União de todos os tipos de verificação */ export declare const VerificationSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodLiteral<"command">; command: z.ZodString; expectedExitCode: z.ZodDefault; expectedOutput: z.ZodOptional; timeout: z.ZodOptional; }, "strip", z.ZodTypeAny, { command: string; type: "command"; expectedExitCode: number; expectedOutput?: string | undefined; timeout?: number | undefined; }, { command: string; type: "command"; expectedExitCode?: number | undefined; expectedOutput?: string | undefined; timeout?: number | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"file">; path: z.ZodString; shouldExist: z.ZodDefault; }, "strip", z.ZodTypeAny, { path: string; type: "file"; shouldExist: boolean; }, { path: string; type: "file"; shouldExist?: boolean | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"content">; path: z.ZodString; pattern: z.ZodString; shouldMatch: z.ZodDefault; }, "strip", z.ZodTypeAny, { path: string; type: "content"; pattern: string; shouldMatch: boolean; }, { path: string; type: "content"; pattern: string; shouldMatch?: boolean | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"endpoint">; url: z.ZodString; method: z.ZodDefault>; expectedStatus: z.ZodNumber; timeout: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "endpoint"; url: string; method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH"; expectedStatus: number; timeout?: number | undefined; }, { type: "endpoint"; url: string; expectedStatus: number; timeout?: number | undefined; method?: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"coverage">; metric: z.ZodEnum<["lines", "functions", "branches", "statements"]>; minPercentage: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "coverage"; metric: "lines" | "functions" | "branches" | "statements"; minPercentage: number; }, { type: "coverage"; metric: "lines" | "functions" | "branches" | "statements"; minPercentage: number; }>, z.ZodObject<{ type: z.ZodLiteral<"build">; command: z.ZodString; allowWarnings: z.ZodDefault; }, "strip", z.ZodTypeAny, { command: string; type: "build"; allowWarnings: boolean; }, { command: string; type: "build"; allowWarnings?: boolean | undefined; }>]>; export type Verification = z.infer; /** * Critério de sucesso completo */ export declare const CriterionSchema: z.ZodObject<{ id: z.ZodString; description: z.ZodString; verification: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{ type: z.ZodLiteral<"command">; command: z.ZodString; expectedExitCode: z.ZodDefault; expectedOutput: z.ZodOptional; timeout: z.ZodOptional; }, "strip", z.ZodTypeAny, { command: string; type: "command"; expectedExitCode: number; expectedOutput?: string | undefined; timeout?: number | undefined; }, { command: string; type: "command"; expectedExitCode?: number | undefined; expectedOutput?: string | undefined; timeout?: number | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"file">; path: z.ZodString; shouldExist: z.ZodDefault; }, "strip", z.ZodTypeAny, { path: string; type: "file"; shouldExist: boolean; }, { path: string; type: "file"; shouldExist?: boolean | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"content">; path: z.ZodString; pattern: z.ZodString; shouldMatch: z.ZodDefault; }, "strip", z.ZodTypeAny, { path: string; type: "content"; pattern: string; shouldMatch: boolean; }, { path: string; type: "content"; pattern: string; shouldMatch?: boolean | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"endpoint">; url: z.ZodString; method: z.ZodDefault>; expectedStatus: z.ZodNumber; timeout: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "endpoint"; url: string; method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH"; expectedStatus: number; timeout?: number | undefined; }, { type: "endpoint"; url: string; expectedStatus: number; timeout?: number | undefined; method?: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | undefined; }>, z.ZodObject<{ type: z.ZodLiteral<"coverage">; metric: z.ZodEnum<["lines", "functions", "branches", "statements"]>; minPercentage: z.ZodNumber; }, "strip", z.ZodTypeAny, { type: "coverage"; metric: "lines" | "functions" | "branches" | "statements"; minPercentage: number; }, { type: "coverage"; metric: "lines" | "functions" | "branches" | "statements"; minPercentage: number; }>, z.ZodObject<{ type: z.ZodLiteral<"build">; command: z.ZodString; allowWarnings: z.ZodDefault; }, "strip", z.ZodTypeAny, { command: string; type: "build"; allowWarnings: boolean; }, { command: string; type: "build"; allowWarnings?: boolean | undefined; }>]>; required: z.ZodDefault; }, "strip", z.ZodTypeAny, { id: string; description: string; verification: { command: string; type: "command"; expectedExitCode: number; expectedOutput?: string | undefined; timeout?: number | undefined; } | { path: string; type: "file"; shouldExist: boolean; } | { path: string; type: "content"; pattern: string; shouldMatch: boolean; } | { type: "endpoint"; url: string; method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH"; expectedStatus: number; timeout?: number | undefined; } | { type: "coverage"; metric: "lines" | "functions" | "branches" | "statements"; minPercentage: number; } | { command: string; type: "build"; allowWarnings: boolean; }; required: boolean; }, { id: string; description: string; verification: { command: string; type: "command"; expectedExitCode?: number | undefined; expectedOutput?: string | undefined; timeout?: number | undefined; } | { path: string; type: "file"; shouldExist?: boolean | undefined; } | { path: string; type: "content"; pattern: string; shouldMatch?: boolean | undefined; } | { type: "endpoint"; url: string; expectedStatus: number; timeout?: number | undefined; method?: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | undefined; } | { type: "coverage"; metric: "lines" | "functions" | "branches" | "statements"; minPercentage: number; } | { command: string; type: "build"; allowWarnings?: boolean | undefined; }; required?: boolean | undefined; }>; export type Criterion = z.infer; /** * Resultado da validação de um critério */ export interface CriterionValidationResult { criterionId: string; valid: boolean; passed: boolean; message: string; details?: Record; } /** * Resultado da validação de múltiplos critérios */ export interface CriteriaValidationResult { allPassed: boolean; results: CriterionValidationResult[]; passedCount: number; failedCount: number; } //# sourceMappingURL=criterion.d.ts.map