import type { LiteralNode, RefsStore } from '@vinejs/compiler/types';
import { symbols, VineNativeEnum } from '@vinejs/vine';
import { FieldOptions, ParserOptions, Validation } from '@vinejs/vine/types';
type ValuesLike = Record<string, string>;
declare module '@vinejs/vine' {
    interface Vine {
        enumWithValues<Values extends ValuesLike>(values: Values): VineEnumWithValues<Values>;
        enumWithArrayValues(values: string[]): VineEnumWithValues<Record<string, string>>;
    }
}
export declare class VineEnumWithValues<Values extends ValuesLike> extends VineNativeEnum<Values> {
    #private;
    constructor(values: Values, options?: FieldOptions, validations?: Validation<any>[]);
    clone(): this;
    [symbols.PARSE](propertyName: string, refs: RefsStore, options: ParserOptions): LiteralNode & {
        subtype: string;
    };
}
export {};
