import type { ExtractPropTypes, PropType } from 'vue';
import type { MaybeRef } from '@veno-ui/utils';
export declare const SIZES: string[];
export type Size = string | number | typeof SIZES[number];
export type SizeProps = ExtractPropTypes<ReturnType<typeof makeSizeProps>>;
export declare const makeSizeProps: <Defaults extends {
    size?: unknown;
} = {}>(defaults?: Defaults | undefined) => {
    size: unknown extends Defaults["size"] ? {
        type: PropType<Size | undefined>;
        default: string;
    } : Omit<{
        type: PropType<Size | undefined>;
        default: string;
    }, "type" | "default"> & {
        type: PropType<unknown extends Defaults["size"] ? Size | undefined : NonNullable<Size | undefined> | Defaults["size"]>;
        default: unknown extends Defaults["size"] ? Size | undefined : NonNullable<Size | undefined> | Defaults["size"];
    };
};
export declare function useSize(props: MaybeRef<SizeProps>, name?: string): {
    sizeClasses: import("vue").ComputedRef<string | null>;
    sizeStyles: import("vue").ComputedRef<{
        width?: undefined;
        height?: undefined;
    } | {
        width: string | undefined;
        height: string | undefined;
    }>;
};
