import { Observable } from 'rxjs';
import { InjectionToken } from '@angular/core';
import { QdFormBaseOption, QdFormBaseOptions } from './options.interface';
/**
 * Token for resolving dynamic options of a form element.
 * If you have multiple inputs in one component, you can provide more than one resolver with `multi: true` and
 * connect the inputs with the `optionsResolverName` config property with a specific resolver.
 * The resolver `name` can be defined as a property of the resolver class.
 *
 * If the options are static, please define the options in the config.
 */
export declare const QD_FORM_OPTIONS_RESOLVER: InjectionToken<QdFormOptionsResolver | QdFormOptionsResolver[]>;
/**
 * Defines a resolver that dynamically provides options for form inputs
 * based on a value (e.g., user input or context).
 */
export interface QdFormOptionsResolver {
    /**
     * Resolves a list of input options for a given input value.
     */
    resolve(value: string): Observable<QdFormResolvedOptions>;
    /**
     * Optional name to identify this resolver.
     * Use this in the form configuration (`optionsResolverName`)
     * to select the correct resolver when multiple are registered.
     */
    name?: string;
    /**
     * Optionally, you can define an i18n key for the request loading hint.
     *
     * **Works only in QdInput.**
     */
    requestLoadingHint?: {
        i18n: string;
    };
    /**
     * Optionally, you can define an i18n for the request error hint. You also can update the error hint directly
     * in the resolver to display a specific error message for a request error.
     *
     * **Works only in QdInput.**
     */
    requestErrorHint?: {
        i18n: string;
    };
}
/**
 * Represents a single raw input option as returned by a QdFormOptionsResolver.
 * This is the unprocessed shape coming directly from the resolver.
 */
export type QdFormResolvedOption = QdFormBaseOption;
/**
 * Represents a list of raw input options returned by a QdFormOptionsResolver.
 */
export interface QdFormResolvedOptions extends QdFormBaseOptions {
}
/**
 * Represents the request state for a form options request using QdFormOptionsResolver.
 * Additional states can be added as needed.
 */
export declare enum QdFormOptionsRequestState {
    IDLE = 0,
    PENDING = 1,
    SUCCESS = 2,
    ERROR = 3
}
//# sourceMappingURL=form-options-resolver.d.ts.map