import { Context } from './types';
export declare class BaseContext implements Context {
    private _currentContext;
    /**
     * Construct a new context which inherits values from an optional parent context.
     *
     * @param parentContext a context from which to inherit values
     */
    constructor(parentContext?: Map<symbol, unknown>);
    /**
     * Get a value from the context.
     *
     * @param key key which identifies a context value
     */
    getValue(key: symbol): unknown;
    /**
     * Create a new context which inherits from this context and has
     * the given key set to the given value.
     *
     * @param key context key for which to set the value
     * @param value value to set for the given key
     */
    setValue(key: symbol, value: unknown): Context;
    /**
     * Return a new context which inherits from this context but does
     * not contain a value for the given key.
     *
     * @param key context key for which to clear a value
     */
    deleteValue(key: symbol): Context;
}
/** The root context is used as the default parent context when there is no active context */
export declare const ROOT_CONTEXT: Context;
/** Get a key to uniquely identify a context value */
export declare function createContextKey(description: string): symbol;
//# sourceMappingURL=context.d.ts.map