import { ReactElement } from 'react';
import { Input } from '../input';
import { state } from '../state';
import { text } from './core';
import { TextProps } from './Text';
export type EditableProps<L extends text.Level = "h1"> = Omit<TextProps<L>, "children" | "onChange"> & Input.Control<string> & {
    useEditableState?: state.PureUse<boolean>;
    allowDoubleClick?: boolean;
};
export declare const edit: (id: string, onChange?: (value: string, renamed: boolean) => void) => void;
export declare const asyncEdit: (id: string) => Promise<[string, boolean]>;
export declare const Editable: <L extends text.Level = "small" | "h1" | "h2" | "h3" | "h4" | "h5" | "p">({ onChange, value, useEditableState, allowDoubleClick, onDoubleClick, ...props }: EditableProps<L>) => ReactElement;
export type MaybeEditableProps<L extends text.Level = "h1"> = Omit<EditableProps<L>, "onChange"> & {
    onChange?: EditableProps<L>["onChange"] | boolean;
    disabled?: boolean;
};
export declare const MaybeEditable: <L extends text.Level = "small" | "h1" | "h2" | "h3" | "h4" | "h5" | "p">({ onChange, disabled, value, allowDoubleClick, ...props }: MaybeEditableProps<L>) => ReactElement;
//# sourceMappingURL=Editable.d.ts.map