import { ComputedRef, PropType, Ref } from 'vue';
import { Colors, type DivergentColors, type Orientation } from '@/types/utils';
import type { Data, InternalData } from '@/types/dataset';
import type { ContainerSize } from '@/types/size';
import type { Options } from '@/types/options';
export type DataValidator = (value: Data) => boolean;
export declare const withBase: (dataValidator?: DataValidator) => {
    data: {
        type: PropType<Data>;
        required: boolean;
        validator: DataValidator;
    };
    labels: {
        type: PropType<Array<string>>;
        default: any;
    };
    color: {
        type: PropType<Colors | DivergentColors>;
        default: Colors;
    };
    title: {
        type: StringConstructor;
        default: any;
    };
};
export declare function useBase(data?: Ref<Data | InternalData>, labels?: Ref<Array<string>>, color?: Ref<Colors | DivergentColors>, options?: Ref<Options>, orientation?: Ref<Orientation>): {
    chartID: `${string}-${string}-${string}-${string}-${string}`;
    computedLabels: ComputedRef<number[] | string[]>;
    containerSize: {
        width: number;
        height: number;
    };
    internalData: ComputedRef<InternalData>;
    updateSize: (size: ContainerSize) => void;
};
//# sourceMappingURL=base.d.ts.map