import type { ShowToast } from './type-helpers/toast';
import type { OpenDialog } from './type-helpers/dialog';
import type { OpenAssetPicker } from './type-helpers/openAssetPicker';
export declare const reservedExtensionProps: string[];
export declare enum ExtensionPermission {
    INPUT = "INPUT",
    FORM = "FORM",
    API = "API"
}
declare type ConfigVariableName = string;
declare type ConfigVariableSettings = {
    type: 'string' | 'number' | 'boolean';
    displayName?: string;
    description?: string;
    required?: boolean;
    defaultValue?: any;
};
export declare type ConfigFields = Record<ConfigVariableName, ConfigVariableSettings>;
export declare type ConfigValue = Record<string, boolean | number | string | undefined | null>;
export declare type FieldConfig = {
    tableConfig: ConfigValue;
    fieldConfig: ConfigValue;
};
export declare type FormSidebarConfig = {
    sidebarConfig: ConfigValue;
};
export declare type Project = {
    id: string;
    name: string;
    mgmtApi: string;
    mgmtToken: string;
};
export declare type Environment = {
    id: string;
    name: string;
    endpoint: string;
    authToken: string;
};
export declare type Context = {
    project: Project;
    environment: Environment;
};
export interface ExtensionPropsBase {
    context: Context;
    openDialog: OpenDialog;
    showToast: ShowToast;
    openAssetPicker: OpenAssetPicker;
    redirectParent: (location: string | Location) => Promise<void>;
    historyReplace: (url: string | HistoryCallback) => Promise<void>;
    historyPush: (url: string | HistoryCallback) => Promise<void>;
}
export interface ExtensionDialogProps extends ExtensionPropsBase {
    onCloseDialog: (value: any) => void;
}
declare type HistoryCallback = (href: Location['href']) => string;
export {};
