import type { CoreEngine } from '../../../app/engine.js';
import { type Context as CoreContext, type ContextProps as CoreContextProps } from '../../context/headless-context.js';
type AdditionalProperties<AdditionalContext extends CoreContext> = Omit<AdditionalContext, keyof CoreContext>;
/**
 * @internal
 * @param additionalPropertiesFactory - The functions that the strict context will have.
 * @returns Two functions to create and mixin the strict context.
 */
export declare const generateStrictContextFunctions: <AdditionalContext extends CoreContext, ContextProps extends CoreContextProps>(additionalPropertiesFactory: (engine: CoreEngine) => AdditionalProperties<AdditionalContext>) => {
    createCustomContext: (engine: CoreEngine, props: ContextProps) => AdditionalContext;
    mixinCustomContext: <InputContext extends CoreContext>(engine: CoreEngine, props: ContextProps, context: InputContext) => InputContext & AdditionalContext;
};
export {};
