export declare const QueryState: Readonly<{
    pending: symbol;
    ready: symbol;
    error: symbol;
    done: symbol;
}>;
type QueryStateType = typeof QueryState[keyof typeof QueryState];
/**
 * A query result Promise that can allows external callers
 * to resolve or reject the Promise.
 */
export declare class QueryResult<T = unknown> extends Promise<T> {
    private _resolve;
    private _reject;
    private _state;
    private _value;
    /**
     * Create a new query result Promise.
     */
    constructor();
    /**
     * Resolve the result Promise with a prepared value or the provided value.
     * This method will only succeed if either a value is provided or the promise is ready.
     * @param value The result value.
     * @returns This QueryResult instance.
     */
    fulfill(value?: T): this;
    /**
     * Prepare to resolve with the provided value.
     * @param value The result value.
     * @returns This QueryResult instance.
     */
    ready(value: T): this;
    /**
     * Rejects the result Promise with the provided error.
     * @param error The error value.
     * @returns This QueryResult instance.
     */
    reject(error: unknown): this;
    /**
     * Returns the state of this query result.
     * @returns The current state symbol.
     */
    get state(): QueryStateType;
}
export {};
//# sourceMappingURL=query-result.d.ts.map