import { _TYPE } from './typings/index';
import { App } from 'vue';

export type * from './typings/index';
export { default as PTBtnPlus } from './btn-plus';
export * from './powerful-table';
export * from './filter';
export * from './components';
export { EmitEnum } from './powerful-table/src/powerful-table-data';
export declare const getType: <T>(target: T) => string;
export declare const deepClone: <T>(target: T) => T;
/**
 * @description 类型保护
 * @see https://www.tslang.cn/docs/handbook/advanced-types.html 搜索 “自定义类型保护”
 * @param {T} obj 值，它必须是联合类型
 * @param {(obj: T) => boolean} cb 回调函数，返回一个布尔值
 * @example
 * const a = [] | string
 * a.push() // 报错
 * if (isTypeProtect<typeof a, []>(a, (a) => Array.isArray(a))) {
 *   a.push() // 正常
 * }
 * @returns {boolean}
 */
export declare const isTypeProtect: <T, P extends T>(obj: T, cb: (obj: T) => boolean) => obj is P;
export declare const setData: <T extends keyof _TYPE<L>, L = any>(data: _TYPE<L>[T]) => _TYPE<L>[T];
declare const _default: {
    install: (app: App, options?: import('./index').InjectProps) => void;
};
export default _default;
