///
import { ConfigInterface as swrConfigInterface, responseInterface as swrResponseInterface } from 'swr';
import { AxiosRequestConfig, Method, AxiosResponse } from 'axios';
export type { AxiosResponse };
export declare type ExtendedField = {
params: Params | undefined;
dataArray: Data[];
dataJson: Data;
responseBlob: any;
responseArray: Response;
responseJson: Response;
};
declare type OnSuccessRes = ExtendedField & {
key: string;
config: Config;
};
export declare type ConfigInterface = Omit>, 'onSuccess'>;
export interface BaseConfigInterface extends ConfigInterface {
onSuccess?: (res: OnSuccessRes>) => void;
}
declare type OmitIsPaused = Omit, 'isPaused'>;
export interface ManualConfigInterface extends OmitIsPaused {
manual: boolean;
onSuccess?: (res: OnSuccessRes>) => void;
}
export interface PaginationConfigInterface extends ConfigInterface {
defaultPageSize?: number;
paginated?: boolean;
onSuccess?: (res: OnSuccessRes>) => void;
}
export interface LoadMoreConfigInterface extends ConfigInterface {
defaultPageSize?: number;
loadMore?: boolean;
onSuccess?: (res: OnSuccessRes>) => void;
}
export declare type PaginationParams = Params & {
page: number;
pageSize: number;
};
export declare type swrResponse = swrResponseInterface, any>;
export declare type BaseResult = swrResponse & ExtendedField;
export interface ManualResult extends BaseResult {
run: (params: Params) => void;
}
export interface PaginationResult extends BaseResult {
params: PaginationParams;
pagination: PaginationConfig;
tableProps: {
pagination: PaginationConfig;
loading: boolean;
onChange: (pagination: PaginationConfig) => void;
dataSource: Data[];
[key: string]: any;
};
noMore?: boolean;
onLoadMore: () => any;
dataArray: Data[];
dataJson: Data;
responseArray: PaginationResponse;
responseJson: PaginationResponse;
}
export interface LoadMoreResult extends BaseResult {
params: PaginationParams;
noMore?: boolean;
onLoadMore: () => any;
dataArray: Data[];
dataJson: Data;
list: Data[];
responseArray: PaginationResponse;
responseJson: PaginationResponse;
}
export declare interface Response {
code: number;
message: string;
data: Data;
}
export declare interface PaginationResponse extends Response {
totalPage?: number;
pageSize?: number;
page?: number;
total?: number;
}
export interface PaginationConfig {
total?: number;
defaultCurrent?: number;
disabled?: boolean;
current?: number;
defaultPageSize?: number;
pageSize?: number;
onChange?: (page: number, pageSize?: number) => void;
hideOnSinglePage?: boolean;
showSizeChanger?: boolean;
pageSizeOptions?: string[];
onShowSizeChange?: (current: number, size: number) => void;
showQuickJumper?: boolean | {
goButton?: React.ReactNode;
};
showTotal?: (total: number, range: [number, number]) => React.ReactNode;
simple?: boolean;
style?: React.CSSProperties;
locale?: Object;
className?: string;
prefixCls?: string;
selectPrefixCls?: string;
itemRender?: (page: number, type: 'page' | 'prev' | 'next' | 'jump-prev' | 'jump-next', originalElement: React.ReactElement) => React.ReactNode;
role?: string;
showLessItems?: boolean;
[key: string]: any;
}
export declare type ApiConfig = AxiosRequestConfig & {
url: string;
method?: Method;
params?: Params;
data?: Params;
_response?: Data;
[x: string]: any;
};
/**
* 设计两层service的原因在于,两层扩展更加灵活。
* 两层service的params在最后执行的时候将会被merge到一起,所以在扩展模块中(如分页),第二层常常被用来传入一些逻辑参数。
*/
export declare type HeadService = (headParams: Params, otherSet?: object) => LastService;
export declare type LastService = (lastParams?: Params) => ApiConfig;
export declare type ServiceCombin = LastService | ApiConfig | null;
export declare type ManualService = HeadService | ServiceCombin;
export declare type ServiceResult = ApiConfig | null;
//# sourceMappingURL=type.d.ts.map