import { DomainObject } from 'domain-objects'; import { z } from 'zod'; import { ProjectCheckDeclaration } from './ProjectCheckDeclaration'; /** * defines a software practice that can be observed in a code base * * for example: 'never use `moment.js`' is a practice an org can adopt */ export interface PracticeDeclaration { name: string; bestPractice: ProjectCheckDeclaration | null; badPractices: ProjectCheckDeclaration[]; } export declare class PracticeDeclaration extends DomainObject implements PracticeDeclaration { static schema: z.ZodObject<{ name: z.ZodString; bestPractice: z.ZodNullable; checks: z.ZodArray; type: z.ZodEnum; required: z.ZodBoolean; check: z.ZodFunction; fix: z.ZodNullable>; contents: z.ZodNullable>; }, z.core.$strip>>; }, z.core.$strip>>; badPractices: z.ZodArray; checks: z.ZodArray; type: z.ZodEnum; required: z.ZodBoolean; check: z.ZodFunction; fix: z.ZodNullable>; contents: z.ZodNullable>; }, z.core.$strip>>; }, z.core.$strip>>; }, z.core.$strip>; }