import { CustomEditConfig, CustomEditController, CustomEditDraftValue, CustomEditInitialValue, CustomEditPresentObjectValue, TableRow } from '../../../types';
type CustomObjectValue = object;
type CustomEditHelperValue<T, K extends keyof T> = CustomEditDraftValue<T, K>;
type CustomEditHelperPresentValue<T, K extends keyof T> = CustomEditPresentObjectValue<T, K>;
type CustomEditHelperInitialValue<T, K extends keyof T> = CustomEditInitialValue<T, K>;
/**
 * State returned by custom edit controller helpers.
 * @property {CustomEditController<TValue>} controller - Controller object exposed to custom edit renderers.
 * @property {() => void} runInitialFocus - Runs the initial focus callback registered by the custom editor.
 */
export type CustomEditControllerState<TValue extends CustomObjectValue, TDraftValue = Partial<TValue>, TInitialValue = TValue> = {
    controller: CustomEditController<TValue, TDraftValue, TInitialValue>;
    runInitialFocus: () => void;
};
/**
 * Options for creating custom edit controller state.
 * @property {TableRow<T>} row - Row whose cell value is being edited.
 * @property {K} columnId - Column id for the editable cell.
 * @property {CustomEditConfig<T, K>} editConfig - Custom edit configuration for the column.
 * @property {() => void} [onCloseEditor] - Called after the editor closes successfully.
 */
export type UseCustomEditControllerStateOptions<T, K extends keyof T> = {
    row: TableRow<T>;
    columnId: K;
    editConfig: CustomEditConfig<T, K>;
    onCloseEditor?: () => void;
};
export type UseCustomEditHelperStateOptions<T, K extends keyof T> = UseCustomEditControllerStateOptions<T, K>;
/**
 * Creates React stateful helpers for a custom editable DataTable cell.
 *
 * @param options Row, column, edit configuration, and close callback for the editable cell.
 * @returns Controller state with draft value helpers and initial focus runner.
 */
export declare function useCustomEditControllerState<T, K extends keyof T>({ row, columnId, editConfig, onCloseEditor, }: UseCustomEditControllerStateOptions<T, K>): CustomEditControllerState<CustomEditHelperPresentValue<T, K>, CustomEditHelperValue<T, K>, CustomEditHelperInitialValue<T, K>>;
/**
 * Backward-compatible alias for the custom edit controller hook.
 */
export declare const useCustomEditHelperState: typeof useCustomEditControllerState;
/**
 * Creates imperative custom edit helpers for non-React consumers and tests.
 *
 * @param options Row, column, edit configuration, and close callback for the editable cell.
 * @returns Controller state with mutable draft value helpers and initial focus runner.
 */
export declare function createCustomEditControllerState<T, K extends keyof T>({ row, columnId, editConfig, onCloseEditor, }: UseCustomEditControllerStateOptions<T, K>): CustomEditControllerState<CustomEditHelperPresentValue<T, K>, CustomEditHelperValue<T, K>, CustomEditHelperInitialValue<T, K>>;
/**
 * Backward-compatible alias for the imperative custom edit controller factory.
 */
export declare const createCustomEditHelperState: typeof createCustomEditControllerState;
export {};
