import { ValidationContext, FileValue } from 'sanity';

declare const referencedDocumentRequires: (documentType: string, field: string, message?: string) => (value: any | undefined, context: ValidationContext) => Promise<string | true>;

declare const fileExtension: (validFileExtension: string | Array<string>, message?: string) => (value: FileValue | undefined) => string | true;

declare const minDimensions: ({ x, y }: {
    x: number;
    y: number;
}, message?: string) => (value: FileValue | undefined) => string | true;

declare const maxDepth: (maxDepth: number, nestedValueName: string, message?: string) => (_: any, context: ValidationContext) => string | true;

declare const requiredIfSlugEq: (slug: Array<string> | string, slugKey?: string, message?: string) => (value: unknown | undefined, context: ValidationContext) => string | true;

declare const requiredIfSiblingEq: (key: string, comparison: string | number | null | Array<string | number | null>, message?: string) => (value: unknown | undefined, context: ValidationContext) => string | true;

declare const getSibling: (key: string | number, context: ValidationContext) => any;

export { fileExtension, getSibling, maxDepth, minDimensions, referencedDocumentRequires, requiredIfSiblingEq, requiredIfSlugEq };
