import { AsmContext, InterfaceId, InterfaceNamespace } from "./asimo.types";
export { AsmContext };
/**
 * Create an interface id object that will be used to associate an interface namepsace with a typescript type
 * @param ns the interface namespace - e.g. "myapplication.services.Settings"
 * @returns an InterfaceId object
 */
export declare function interfaceId<T>(ns: InterfaceNamespace): InterfaceId<T>;
/**
 * Create an asimo context
 * @param nameOrOptions the context name or an options object with the following properties:
 * - name: the context name (default: a unique name will be created)
 * - parent: the parent context (default: null = root context)
 * @returns an asimo context
 */
export declare function createContext(nameOrOptions?: string | {
    name?: string;
    parent?: AsmContext;
}): AsmContext;
/**
 * Root context
 */
export declare const asm: AsmContext;
