import { type ISpectralDiagnostic, type RuleDefinition } from '@stoplight/spectral-core';
export type RecursivePartial<T> = {
    [P in Extract<keyof T, string>]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object | undefined ? RecursivePartial<T[P]> : T[P];
};
type Ruleset = {
    rules: Record<string, Readonly<RuleDefinition>>;
};
export declare const createDescribeRule: <TDefinition>() => <TRuleset extends Ruleset>(ruleset: TRuleset) => <TPartialDefinition extends RecursivePartial<TDefinition>>(ruleName: Extract<keyof (typeof ruleset)["rules"], string>, fn: (lint: (definition: TPartialDefinition) => Promise<ISpectralDiagnostic[]>) => void) => import("vitest").SuiteCollector<object>;
export {};
