import type { LiteralNode, RefsStore } from '@vinejs/compiler/types';
import { BaseLiteralType, VineValidator, symbols } from '@vinejs/vine';
import { FieldOptions, ParserOptions, SchemaTypes, Validation } from '@vinejs/vine/types';
export type VineInstanceOfOptions = FieldOptions & {
    allowUntyped: boolean;
};
declare module '@vinejs/vine' {
    interface Vine {
        instanceof<VineSchema extends SchemaTypes>(expectedClass: any, options?: FieldOptions & {
            schema: VineSchema;
        }): VineInstanceOf<VineSchema>;
    }
}
export declare class VineInstanceOf<VineSchema extends SchemaTypes> extends BaseLiteralType<any, any, any> {
    [symbols.SUBTYPE]: string;
    expectedClass: any;
    schema?: VineSchema;
    validator?: VineValidator<any, any>;
    allowUntyped: boolean;
    constructor(expectedClass: any, schema?: VineSchema, options?: VineInstanceOfOptions, validations?: Validation<any>[]);
    clone(): this;
    [symbols.PARSE](propertyName: string, refs: RefsStore, options: ParserOptions): LiteralNode & {
        subtype: string;
        expectedClass: string;
        schema?: any;
        allowUntyped: boolean;
    };
}
