import { MachineSchema, Machine, Service } from '@zag-js/core';
export { mergeProps } from '@zag-js/core';
import * as _zag_js_types from '@zag-js/types';
import * as Vue from 'vue';
import { Ref, ComputedRef } from 'vue';

type ReservedProps = {
    key?: string | number | symbol;
    ref?: Vue.VNodeRef;
};
type Attrs<T> = T & ReservedProps;
type PropTypes = Vue.NativeElements & {
    element: Attrs<Vue.HTMLAttributes>;
    style: Vue.CSSProperties;
};
declare const normalizeProps: _zag_js_types.NormalizeProps<PropTypes>;

type MaybeRef<T> = T | Ref<T> | ComputedRef<T>;
declare function useMachine<T extends MachineSchema>(machine: Machine<T>, userProps?: MaybeRef<Partial<T["props"]>>): Service<T>;

export { type PropTypes, normalizeProps, useMachine };
