import { SetupContext } from "vue";
import { UiSelectProps, UiSelectEmits } from "../index";
import { UiTypes } from "@various/constants";
import { animations } from "@various/utils";
export declare const useComposable: (define: UiSelectProps, emits: SetupContext<typeof UiSelectEmits>["emit"]) => {
    ons: {
        animation: {
            "before-leave": () => void | undefined;
            "before-enter": (el: Element) => void;
            leave: (el: Element, done: () => void) => void;
            enter: (el: Element, done: () => void) => void;
        };
        candidate: (option: UiTypes.candidate) => {
            mousedown: (ev: Event) => void;
        };
    };
    vars: {
        observer: ResizeObserver | undefined;
    };
    refs: {
        visible: import("vue").Ref<boolean, boolean>;
    };
    nodes: {
        body: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
        container: import("vue").Ref<HTMLElement | undefined, HTMLElement | undefined>;
    };
    binds: {
        main: {
            value: any;
            disabled: boolean;
            placeholder: string | undefined;
            autocomplete: string;
        };
        body: {
            class: string;
            style: {
                zIndex: number;
            };
        };
        container: {
            class: string;
            style: {
                width: string;
            };
        };
        candidates: {
            style: {
                maxHeight: string;
            };
        };
    };
    methods: {
        hidden: (ev?: Event) => void;
        clear: () => void;
        show: () => void;
    };
    computeds: {
        value: import("vue").ComputedRef<any>;
        disabled: import("vue").ComputedRef<boolean>;
        className: import("vue").ComputedRef<string>;
    };
    animations: typeof animations;
};
