import { CvState, CvProps, CvEvent, CvResultCallback, CvContext, CvNavigationResult, CvStateChangeResult, CvStateChangeType, CvValueProvider, CvActionHandlerParams } from './catreact-core';
import { FormContext, EntityRec, EntityRecDef, EditorContext, NavRequest, DialogException } from 'catavolt-sdk';
export interface CvEditorBaseState extends CvState {
}
export interface CvEditorBaseProps extends CvProps {
    formContext?: FormContext;
    paneRef?: number;
    detailsContext?: EditorContext;
    detailsRenderer?: (cvContext: CvContext, entityRec: EntityRec, callback: CvEditorPaneCallback) => {};
    errorRenderer?: (cvContext: CvContext, dialogException?: DialogException) => {};
    navigationListeners?: Array<(event: CvEvent<CvNavigationResult>) => void>;
    stateChangeListeners?: Array<(event: CvEvent<CvStateChangeResult>) => void>;
    actionListeners?: Array<(event: CvEvent<CvStateChangeResult>) => void>;
    actionProvider?: CvValueProvider<CvActionHandlerParams>;
    initMode?: CvInitMode;
}
export interface CvEditorPaneCallback {
    clear(): void;
    getPropValueForDisplay(propName: string): string;
    getPropValueForEdit(propName: string): string;
    openReadMode(resultCallback?: CvResultCallback<EntityRecDef>): void;
    openWriteMode(resultCallback?: CvResultCallback<EntityRecDef>): void;
    saveChanges(resultCallback?: CvResultCallback<NavRequest>, navTarget?: string): void;
    setPropValue(name: string, value: any): void;
    setBinaryPropWithDataUrl(name: string, dataUrl: string): void;
    setBinaryPropWithEncodedData(name: string, encodedData: string): void;
    suppressEvents(suppressEvents: boolean): void;
    refresh(): void;
}
export declare enum CvInitMode {
    NORMAL = 0,
    DEFERRED = 1,
    MANUAL = 2,
}
/**
 * Render a EditorContext
 */
export declare var CvEditorBase: {
    editorContext: (nextProps: any, nextContext: any) => EditorContext;
    formContext: (nextProps: any, nextContext: any) => any;
    getChildContext: () => any;
    refresh: (nextProps: any, nextContext: any, callback: CvResultCallback<any>) => void;
    _checkDestroyed: () => void;
    _componentDidMount: () => void;
    _componentWillReceiveProps: (nextProps: any, nextContext: any) => void;
    _componentWillUnmount: () => void;
    _dataChangeListener: (dataChangeResult: CvEvent<CvStateChangeResult>) => void;
    _getDefaultProps: () => {
        formContext: any;
        paneRef: any;
        detailsContext: any;
        detailsRenderer: any;
        errorRenderer: any;
        navigationListeners: any[];
        stateChangeListeners: any[];
        actionListeners: any[];
        actionProvider: any;
        initMode: CvInitMode;
    };
    _getEditorContext: (formContext: FormContext, paneRef: number) => any;
    _getCallbackObj: () => CvEditorPaneCallback;
    _handleAction: (params: CvActionHandlerParams) => void;
    _handleNavigation: (navRequest: NavRequest, actionId: string, navTarget: string, sourceIsDestroyed: boolean) => CvEvent<CvNavigationResult>;
    _publishStateChange: (type: CvStateChangeType) => void;
    _render: () => any;
};
