import { DomainPropertyType } from '../modeling/DataFormat.js';
export declare const noValue: unique symbol;
/**
 * A class to be used for generating values from pre-defined functions.
 * This is used to provide default values for data properties based on specified functions.
 */
export declare class DataValueGenerator {
    /**
     * The current value for the `number.incremental` function.
     * This counter is incremented each time an incremental number is generated.
     */
    protected increment: number;
    /**
     * A symbol representing the absence of a value.
     * Used as a return value when a function cannot generate a value of the requested type.
     */
    static readonly noValue: symbol;
    /**
     * Generates a value based on the provided function name and data type.
     * @param fn The name of the function to use for value generation (e.g., 'random', 'uuid-v4', 'incremental').
     * @param type The data type of the value to generate (e.g., 'string', 'number', 'date', 'time', 'datetime').
     * @returns The generated value, or the `noValue` symbol if the function or type is not supported.
     */
    generate(fn: string, type: DomainPropertyType): string | typeof noValue;
    /**
     * Generates a string value based on the function name.
     * @param fn The name of the string generation function.
     * @returns The generated string value, or `noValue` if the function is not supported.
     */
    protected generateString(fn: string): string | typeof noValue;
    /**
     * Generates a number value based on the function name.
     * @param fn The name of the number generation function.
     * @returns The generated number value (as a string), or `noValue` if the function is not supported.
     */
    protected generateNumber(fn: string): string | typeof noValue;
    /**
     * Generates a date value based on the function name.
     * @param fn The name of the date generation function.
     * @returns The generated date value (as a string in YYYY-MM-DD format),
     * or `noValue` if the function is not supported.
     */
    protected generateDate(fn: string): string | typeof noValue;
    /**
     * Generates a time value based on the function name.
     * @param fn The name of the time generation function.
     * @returns The generated time value (as a string in HH:mm:ss format), or `noValue` if the function is not supported.
     */
    protected generateTime(fn: string): string | typeof noValue;
    /**
     * Generates a datetime value based on the function name.
     * @param fn The name of the datetime generation function.
     * @returns The generated datetime value (as a string in YYYY-MM-DDTHH:mm:ss format),
     * or `noValue` if the function is not supported.
     */
    protected generateDateTime(fn: string): string | typeof noValue;
}
//# sourceMappingURL=DataValueGenerator.d.ts.map