import { Content } from 'itlab-functions';
import { UnwrapNestedRefs, UnwrapRef } from 'vue';
export interface Form<Item extends object, Dto extends Partial<Item>> {
    disabled: boolean;
    hasChanges: boolean;
    disable: () => void;
    enable: () => void;
    dto: UnwrapRef<UnwrapNestedRefs<Dto>>;
    setDto: (item: Item) => void;
    resetDto: () => void;
}
type ContentObj = Record<string, any> & {
    content: Content;
};
export type AnyForm = Form<any, any>;
export type MaybeContentForm = Form<any, Partial<ContentObj>>;
export type ContentForm = Form<any, ContentObj>;
export declare function useForm<Item extends object, Dto extends Partial<Item>>(defaultDto: Dto, initialyDisabled?: boolean): Form<Item, Dto>;
export {};
