import type { ComponentPublicInstance, PropType } from 'vue';
import { config } from '../utils';
export type Data = config.KLineData | config.TvKlineData;
export type Ref = ComponentPublicInstance<any> | null;
export type LoadMore<T> = (ts: number | null, cb: (list: T[]) => void) => void;
export type MenuEmit = {
    selectInterval: [interval: config.Interval, first: boolean];
    editInterval: [intervals: config.Interval[]];
    showIndicator: [];
    selectGraph: [graph: number];
    set: [];
    screenshot: [];
    fullScreen: [fullScreen: boolean];
};
export type PlusClickParams = {
    clientX: number;
    clientY: number;
    pageX: number;
    pageY: number;
    screenX: number;
    screenY: number;
    symbol: string | null;
    price: number;
};
export type Emit = {
    /** 加号点击监听函数 */
    plusClick: [plusParams: PlusClickParams];
};
export declare const propTypes: {
    /** 支持的图表类型 */
    types: {
        type: PropType<config.KlineType[]>;
        default: () => config.KlineType[];
    };
    /** 图表类型 */
    type: {
        type: PropType<config.KlineType>;
        default: string;
    };
    /** TradingView 包路径 */
    libraryPath: {
        type: StringConstructor;
        default: string;
    };
    /** TradingView 自定义 css 路径 */
    customCssUrl: {
        type: StringConstructor;
        default: string;
    };
    /** 缓存 key */
    storeKey: {
        type: StringConstructor;
        default: string;
    };
    /** 交易所名称 */
    exchange: {
        type: StringConstructor;
        default: string;
    };
    /** 水印 */
    watermark: {
        type: PropType<HTMLElement | string>;
        defatult: string;
    };
    /** 主题 */
    theme: {
        type: PropType<config.Theme>;
        default: string;
    };
    /** 语言 */
    lang: {
        type: PropType<`${config.Lang}`>;
        default: config.Lang;
    };
    /** 默认展示 ma 指标 */
    showMa: {
        type: BooleanConstructor;
        default: boolean;
    };
    /** 默认展示成交量指标 */
    showVol: {
        type: BooleanConstructor;
        default: boolean;
    };
    /** 时间周期 */
    interval: {
        type: PropType<config.Interval>;
        default: config.Interval;
    };
    /** 支持的时间周期列表 */
    intervals: {
        type: PropType<config.Interval[]>;
        default: () => config.Interval[];
    };
    /** 菜单已选时间区间 */
    selectedIntervals: {
        type: PropType<config.Interval[]>;
        default: () => config.Interval[];
    };
    /** 图形 */
    graph: {
        type: NumberConstructor;
        default: number;
    };
    /** 全屏 */
    fullscreen: {
        type: BooleanConstructor;
        default: boolean;
    };
    /** 交易对 */
    symbol: {
        type: StringConstructor;
        default: string;
    };
    /** 价格精度 */
    pricePrecision: {
        type: NumberConstructor;
        default: number;
    };
    /** 数量精度 */
    quantityPrecision: {
        type: NumberConstructor;
        default: number;
    };
    /** 数据加载中 */
    loading: {
        type: PropType<boolean>;
        default: boolean;
    };
    /** loading 颜色 */
    loadingColor: {
        type: StringConstructor;
        default: string;
    };
    /** 默认请求条数 */
    limitSize: {
        type: NumberConstructor;
        default: number;
    };
};
/** 菜单属性 */
export declare const menuProps: {
    type: {
        type: PropType<config.KlineType>;
        default: string;
    };
    theme: {
        type: PropType<config.Theme>;
        default: string;
    };
    lang: {
        type: PropType<`${config.Lang}`>;
        default: config.Lang;
    };
    interval: {
        type: PropType<config.Interval>;
        default: config.Interval;
    };
    intervals: {
        type: PropType<config.Interval[]>;
        default: () => config.Interval[];
    };
    selectedIntervals: {
        type: PropType<config.Interval[]>;
        default: () => config.Interval[];
    };
    graph: {
        type: NumberConstructor;
        default: number;
    };
    fullscreen: {
        type: BooleanConstructor;
        default: boolean;
    };
    loading: {
        type: PropType<boolean>;
        default: boolean;
    };
};
/** 定义 tvProps */
export declare const tvProps: {
    libraryPath: {
        type: StringConstructor;
        default: string;
    };
    customCssUrl: {
        type: StringConstructor;
        default: string;
    };
    storeKey: {
        type: StringConstructor;
        default: string;
    };
    exchange: {
        type: StringConstructor;
        default: string;
    };
    watermark: {
        type: PropType<HTMLElement | string>;
        defatult: string;
    };
    theme: {
        type: PropType<config.Theme>;
        default: string;
    };
    lang: {
        type: PropType<`${config.Lang}`>;
        default: config.Lang;
    };
    showMa: {
        type: BooleanConstructor;
        default: boolean;
    };
    showVol: {
        type: BooleanConstructor;
        default: boolean;
    };
    interval: {
        type: PropType<config.Interval>;
        default: config.Interval;
    };
    graph: {
        type: NumberConstructor;
        default: number;
    };
    symbol: {
        type: StringConstructor;
        default: string;
    };
    pricePrecision: {
        type: NumberConstructor;
        default: number;
    };
    quantityPrecision: {
        type: NumberConstructor;
        default: number;
    };
    loading: {
        type: PropType<boolean>;
        default: boolean;
    };
    loadingColor: {
        type: StringConstructor;
        default: string;
    };
    limitSize: {
        type: NumberConstructor;
        default: number;
    };
    list: {
        type: PropType<config.TvKlineData[]>;
        default: () => never[];
    };
    latestData: {
        type: PropType<config.TvKlineData | null>;
        default: () => null;
    };
    loadMore: {
        type: PropType<LoadMore<config.TvKlineData>>;
        default: () => void;
    };
};
/** 定义 simpleProps */
export declare const simpleProps: {
    storeKey: {
        type: StringConstructor;
        default: string;
    };
    watermark: {
        type: PropType<HTMLElement | string>;
        defatult: string;
    };
    theme: {
        type: PropType<config.Theme>;
        default: string;
    };
    lang: {
        type: PropType<`${config.Lang}`>;
        default: config.Lang;
    };
    showMa: {
        type: BooleanConstructor;
        default: boolean;
    };
    showVol: {
        type: BooleanConstructor;
        default: boolean;
    };
    graph: {
        type: NumberConstructor;
        default: number;
    };
    pricePrecision: {
        type: NumberConstructor;
        default: number;
    };
    quantityPrecision: {
        type: NumberConstructor;
        default: number;
    };
    loading: {
        type: PropType<boolean>;
        default: boolean;
    };
    loadingColor: {
        type: StringConstructor;
        default: string;
    };
    limitSize: {
        type: NumberConstructor;
        default: number;
    };
    list: {
        type: PropType<config.KLineData[]>;
        default: () => never[];
    };
    latestData: {
        type: PropType<config.KLineData | null>;
        default: () => null;
    };
    loadMore: {
        type: PropType<LoadMore<config.KLineData>>;
        default: () => void;
    };
};
export declare const Kline: {
    types: {
        type: PropType<config.KlineType[]>;
        default: () => config.KlineType[];
    };
    type: {
        type: PropType<config.KlineType>;
        default: string;
    };
    libraryPath: {
        type: StringConstructor;
        default: string;
    };
    customCssUrl: {
        type: StringConstructor;
        default: string;
    };
    storeKey: {
        type: StringConstructor;
        default: string;
    };
    exchange: {
        type: StringConstructor;
        default: string;
    };
    watermark: {
        type: PropType<HTMLElement | string>;
        defatult: string;
    };
    theme: {
        type: PropType<config.Theme>;
        default: string;
    };
    lang: {
        type: PropType<`${config.Lang}`>;
        default: config.Lang;
    };
    showMa: {
        type: BooleanConstructor;
        default: boolean;
    };
    showVol: {
        type: BooleanConstructor;
        default: boolean;
    };
    intervals: {
        type: PropType<config.Interval[]>;
        default: () => config.Interval[];
    };
    symbol: {
        type: StringConstructor;
        default: string;
    };
    pricePrecision: {
        type: NumberConstructor;
        default: number;
    };
    quantityPrecision: {
        type: NumberConstructor;
        default: number;
    };
    loading: {
        type: PropType<boolean>;
        default: boolean;
    };
    loadingColor: {
        type: StringConstructor;
        default: string;
    };
    limitSize: {
        type: NumberConstructor;
        default: number;
    };
    list: {
        type: PropType<config.TvKlineData[] & config.KLineData[]>;
        default: () => never[];
    };
    latestData: {
        type: PropType<(config.TvKlineData & config.KLineData) | null>;
        default: () => null;
    };
    loadMore: {
        type: PropType<LoadMore<config.TvKlineData & config.KLineData>>;
        default: () => void;
    };
};
