///
import { StateBag } from './state-bag.js';
import { RouterContext } from '@koa/router';
import { InteractsWithState as InteractsWithStateContract, HttpStateData } from '@supercharge/contracts';
export declare class InteractsWithState implements InteractsWithStateContract {
/**
* The route context object from Koa.
*/
protected readonly koaCtx: RouterContext;
/**
* Create a new instance.
*/
constructor(ctx: RouterContext);
/**
* Returns the shared state bag for this HTTP context.
*/
state(): StateBag;
/**
* Share a given `state` across HTTP requests. Any previously
* set state will be merged with the given `state`.
*/
share(key: Key, value: HttpStateData[Key]): this;
share(values: Partial): this;
}