export declare const ABIXKey = "#abix";
import { type AnyCell, type SheetProxy, type ValueCell } from "@okcontract/cells";
import { type ABIExtra } from "@okcontract/coredata";
import { type EditorMode, type EditorNode, type GroupDefinition, type LabelledTypeDefinition, type MapTypeDefinitions, type TypeScheme } from "@okcontract/fred";
import type { Environment } from "@okcontract/lambdascript";
import type { OKPage } from "./instance";
/**
 * okayedMethod checks if method m is okayed in ABIExtra.
 * @param x
 * @returns
 */
export declare const okayedMethod: (x: ABIExtra) => (m: string) => boolean;
/**
 * methods_ok_for_widget computes the list of okayed methods for a widget (possibly none).
 * @param methods
 * @param x
 */
export declare const okayedMethods: (methods: string[], x: ABIExtra) => string[];
export declare const widgetGroups: (proxy: SheetProxy) => AnyCell<GroupDefinition>[];
export declare const key_group_collapsed: (k: any) => string;
export declare const WidgetID: (instance: OKPage) => (node: any, env: any) => ValueCell<import("@okcontract/fred").TypeDefinitionName | ({
    label: string;
    hideLabel?: boolean;
    hint?: string;
    help?: string;
    pl?: string;
    validator?: (v: unknown) => string | Promise<string>;
    locked?: boolean;
    gr?: string;
    recomp?: boolean;
    icon?: string;
    options?: unknown;
    lens?: (v: AnyCell<unknown>, options?: unknown) => AnyCell<unknown>;
    css?: string;
    cssView?: string;
    link?: string;
    rank?: number;
    compact?: boolean;
    labelCss?: string;
} & import("@okcontract/fred").TypeDefinitionName & {
    def?: unknown;
    hidden?: boolean;
    optional?: boolean;
}) | ({
    label: string;
    hideLabel?: boolean;
    hint?: string;
    help?: string;
    pl?: string;
    validator?: (v: unknown) => string | Promise<string>;
    locked?: boolean;
    gr?: string;
    recomp?: boolean;
    icon?: string;
    options?: unknown;
    lens?: (v: AnyCell<unknown>, options?: unknown) => AnyCell<unknown>;
    css?: string;
    cssView?: string;
    link?: string;
    rank?: number;
    compact?: boolean;
    labelCss?: string;
} & import("@okcontract/fred").TypeDefinitionAny & {
    def?: unknown;
    hidden?: boolean;
    optional?: boolean;
}) | ({
    label: string;
    hideLabel?: boolean;
    hint?: string;
    help?: string;
    pl?: string;
    validator?: (v: unknown) => string | Promise<string>;
    locked?: boolean;
    gr?: string;
    recomp?: boolean;
    icon?: string;
    options?: unknown;
    lens?: (v: AnyCell<unknown>, options?: unknown) => AnyCell<unknown>;
    css?: string;
    cssView?: string;
    link?: string;
    rank?: number;
    compact?: boolean;
    labelCss?: string;
} & import("@okcontract/fred").TypeDefinitionString & {
    def?: unknown;
    hidden?: boolean;
    optional?: boolean;
}) | ({
    label: string;
    hideLabel?: boolean;
    hint?: string;
    help?: string;
    pl?: string;
    validator?: (v: unknown) => string | Promise<string>;
    locked?: boolean;
    gr?: string;
    recomp?: boolean;
    icon?: string;
    options?: unknown;
    lens?: (v: AnyCell<unknown>, options?: unknown) => AnyCell<unknown>;
    css?: string;
    cssView?: string;
    link?: string;
    rank?: number;
    compact?: boolean;
    labelCss?: string;
} & import("@okcontract/fred").TypeDefinitionNumber & {
    def?: unknown;
    hidden?: boolean;
    optional?: boolean;
}) | ({
    label: string;
    hideLabel?: boolean;
    hint?: string;
    help?: string;
    pl?: string;
    validator?: (v: unknown) => string | Promise<string>;
    locked?: boolean;
    gr?: string;
    recomp?: boolean;
    icon?: string;
    options?: unknown;
    lens?: (v: AnyCell<unknown>, options?: unknown) => AnyCell<unknown>;
    css?: string;
    cssView?: string;
    link?: string;
    rank?: number;
    compact?: boolean;
    labelCss?: string;
} & import("@okcontract/fred").TypeDefinitionDate & {
    def?: unknown;
    hidden?: boolean;
    optional?: boolean;
}) | ({
    label: string;
    hideLabel?: boolean;
    hint?: string;
    help?: string;
    pl?: string;
    validator?: (v: unknown) => string | Promise<string>;
    locked?: boolean;
    gr?: string;
    recomp?: boolean;
    icon?: string;
    options?: unknown;
    lens?: (v: AnyCell<unknown>, options?: unknown) => AnyCell<unknown>;
    css?: string;
    cssView?: string;
    link?: string;
    rank?: number;
    compact?: boolean;
    labelCss?: string;
} & import("@okcontract/fred").TypeDefinitionBoolean & {
    def?: unknown;
    hidden?: boolean;
    optional?: boolean;
}) | ({
    label: string;
    hideLabel?: boolean;
    hint?: string;
    help?: string;
    pl?: string;
    validator?: (v: unknown) => string | Promise<string>;
    locked?: boolean;
    gr?: string;
    recomp?: boolean;
    icon?: string;
    options?: unknown;
    lens?: (v: AnyCell<unknown>, options?: unknown) => AnyCell<unknown>;
    css?: string;
    cssView?: string;
    link?: string;
    rank?: number;
    compact?: boolean;
    labelCss?: string;
} & import("@okcontract/fred").TypeDefinitionEnum & {
    def?: unknown;
    hidden?: boolean;
    optional?: boolean;
}) | ({
    label: string;
    hideLabel?: boolean;
    hint?: string;
    help?: string;
    pl?: string;
    validator?: (v: unknown) => string | Promise<string>;
    locked?: boolean;
    gr?: string;
    recomp?: boolean;
    icon?: string;
    options?: unknown;
    lens?: (v: AnyCell<unknown>, options?: unknown) => AnyCell<unknown>;
    css?: string;
    cssView?: string;
    link?: string;
    rank?: number;
    compact?: boolean;
    labelCss?: string;
} & import("@okcontract/fred").TypeDefinitionArray & {
    def?: unknown;
    hidden?: boolean;
    optional?: boolean;
}) | ({
    label: string;
    hideLabel?: boolean;
    hint?: string;
    help?: string;
    pl?: string;
    validator?: (v: unknown) => string | Promise<string>;
    locked?: boolean;
    gr?: string;
    recomp?: boolean;
    icon?: string;
    options?: unknown;
    lens?: (v: AnyCell<unknown>, options?: unknown) => AnyCell<unknown>;
    css?: string;
    cssView?: string;
    link?: string;
    rank?: number;
    compact?: boolean;
    labelCss?: string;
} & import("@okcontract/fred").TypeDefinitionObject & {
    def?: unknown;
    hidden?: boolean;
    optional?: boolean;
}) | ({
    label: string;
    hideLabel?: boolean;
    hint?: string;
    help?: string;
    pl?: string;
    validator?: (v: unknown) => string | Promise<string>;
    locked?: boolean;
    gr?: string;
    recomp?: boolean;
    icon?: string;
    options?: unknown;
    lens?: (v: AnyCell<unknown>, options?: unknown) => AnyCell<unknown>;
    css?: string;
    cssView?: string;
    link?: string;
    rank?: number;
    compact?: boolean;
    labelCss?: string;
} & import("@okcontract/fred").TypeDefinitionDict & {
    def?: unknown;
    hidden?: boolean;
    optional?: boolean;
})>;
/**
 * TypeScheme definitions for Widget.
 * @param cons
 * @returns
 * @todo flatten without OKWidget
 */
export declare const widgetTypeScheme: (instance: OKPage, mode: EditorMode) => MapTypeDefinitions;
export declare const WidgetTypeDefinition: () => LabelledTypeDefinition;
export declare const widgetSchema: (instance: OKPage, mode: EditorMode) => TypeScheme;
export declare const LoadingDefinition: LabelledTypeDefinition;
export declare const ABIMethodRef: (proxy: SheetProxy) => (node?: EditorNode, env?: Environment) => AnyCell<LabelledTypeDefinition>;
export declare const ABIMethodFieldsRef: (instance: OKPage) => (node?: EditorNode, env?: Environment) => AnyCell<LabelledTypeDefinition>;
export declare const ABIValuesRef: (instance: OKPage) => (node?: EditorNode, env?: Environment) => AnyCell<LabelledTypeDefinition>;
