import { PropType, SlotsType } from "vue";
import useRequest from "../useRequest";
import type { UseRequestService, UseRequestOptions, UseRequestPlugin } from "../types";
declare function createUseRequestComponent<TServiceData = any, TParams extends unknown[] = any[], TFormatResult = TServiceData>(): import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    service: {
        type: PropType<UseRequestService<TServiceData, TParams>>;
        required: true;
    };
    manual: {
        type: BooleanConstructor;
        default: boolean;
    };
    ready: {
        type: PropType<UseRequestOptions<TServiceData, TParams>["ready"]>;
        default: () => {
            ready: boolean;
        };
    };
    refreshDeps: {
        type: PropType<any[]>;
        default: () => never[];
    };
    plugins: {
        type: PropType<UseRequestPlugin<TServiceData, TParams>[]>;
        default: () => never[];
    };
    formatResult: {
        type: PropType<(res: TServiceData) => TFormatResult>;
        default: undefined;
    };
}>, () => any, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    service: {
        type: PropType<UseRequestService<TServiceData, TParams>>;
        required: true;
    };
    manual: {
        type: BooleanConstructor;
        default: boolean;
    };
    ready: {
        type: PropType<UseRequestOptions<TServiceData, TParams>["ready"]>;
        default: () => {
            ready: boolean;
        };
    };
    refreshDeps: {
        type: PropType<any[]>;
        default: () => never[];
    };
    plugins: {
        type: PropType<UseRequestPlugin<TServiceData, TParams>[]>;
        default: () => never[];
    };
    formatResult: {
        type: PropType<(res: TServiceData) => TFormatResult>;
        default: undefined;
    };
}>> & Readonly<{}>, {
    manual: boolean;
    ready: boolean | import("vue").Ref<boolean, boolean> | undefined;
    refreshDeps: any[];
    formatResult: (res: TServiceData) => TFormatResult;
    plugins: UseRequestPlugin<TServiceData, TParams, any>[];
}, SlotsType<{
    default: (props: ReturnType<typeof useRequest<TFormatResult, TParams>>) => any;
    loading: () => any;
    error: (props: {
        error: ReturnType<typeof useRequest<TFormatResult, TParams>>["error"]["value"];
    }) => any;
    target?: () => any;
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default createUseRequestComponent;
