import type { IAnyComplexType, IAnyModelType } from '@jbrowse/mobx-state-tree';
export interface ConfigSlotDefinition {
    description?: string;
    model?: IAnyModelType | IAnyComplexType;
    type: string;
    defaultValue: any;
    contextVariable?: string[];
}
export default function ConfigSlot(slotName: string, { description, model, type, defaultValue, contextVariable, }: ConfigSlotDefinition): import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IModelType<{
    name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
    description: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
    type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
    value: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ITypeUnion<any, any, any>, [undefined]>;
}, {
    contextVariable: string[];
} & {
    readonly isCallback: boolean;
} & {
    readonly expr: any;
    readonly valueJSON: any[] | Record<string, any> | string | undefined;
} & {
    getValue(args?: Record<string, unknown>): any;
} & {
    set(newVal: any): void;
    reset(): void;
    convertToCallback(): void;
    convertToValue(): void;
}, import("@jbrowse/mobx-state-tree").ModelCreationType<import("@jbrowse/mobx-state-tree/dist/internal").ExtractCFromProps<{
    name: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
    description: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
    type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
    value: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ITypeUnion<any, any, any>, [undefined]>;
}>>, any>, [undefined]>;
