import type { AnyValue, Model } from '../Contracts';
import type AvonRequest from '../Http/Requests/AvonRequest';
import Field from './Field';
export default abstract class Lazy extends Field {
    /**
     * Indicates related resources have to load.
     */
    loaded: boolean;
    /**
     * Determine field is resolvable or not.
     */
    resolvable(): boolean;
    /**
     * Specify related resources to load.
     */
    load(): this;
    /**
     * Determine that related resource loaded.
     */
    isLoaded(): boolean;
    /**
     * Resolve value for given resources.
     */
    abstract resolveForResources(request: AvonRequest, resources: Model[]): Promise<AnyValue>;
}
