///
import { Handler } from './utils';
import { ClientResponse } from './client/protocol';
import { ServerResponse } from './server';
export interface ClientConfig {
webServer?: string;
clientSign?: string;
protocol_version?: string;
client_version?: string;
proxy_ip?: string;
proxy_port?: number;
language?: 'zh-CN' | 'en-US';
server_ip?: string;
server_port?: number;
server5_port?: number;
server5_ssl_port?: number;
is_ftps?: boolean;
tcpEnable?: number;
tcpDelay?: number;
origin?: string;
autoUpdateSwitch?: boolean;
cHashVerifySwitch?: boolean;
cTransEncryptSwitch?: boolean;
group_id?: number;
clientPorts?: number[];
clientHosts?: string[];
certSelect?: number;
forbidClientFilterSwitch?: boolean;
transIgnoreRegSwitch?: boolean;
transIgnoreReg?: string;
transIgnoreSizeSwitch?: boolean;
transIgnoreSize?: number;
transSyncSwitch?: boolean;
transSyncTriggeringCondition?: Record;
transIncludeRegSwitch?: boolean;
transIncludeReg?: string;
hideHiddenFiles?: boolean;
space_id?: number;
is_encrypt?: boolean;
recv_state?: boolean;
}
export declare enum TriggerType {
Once_interval_time = "once",
Interval_time = "integer",
Clock_time = "clock",
Weekly_time = "timing"
}
export declare enum REQUEST_STATE {
STATE_UNKNOWN = 0,
STATE_TODO = 1,
STATE_CONNECTING_PROXY = 2,
STATE_WAIT_NEXT_COMMAND = 3,
STATE_WAIT_LOGIN_INFO = 4,
STATE_READY = 5,
STATE_RECOVER = 6,
STATE_STARTED = 7,
STATE_STOPPING = 8,
STATE_STOPPED = 9,
STATE_SUCCESSFUL = 10,
STATE_FAILED = 11,
STATE_AUTH_FAILED = 12,
STATE_PROXY_CLOSED = 13
}
export interface TriggeringCondition {
taskFrequencyType: TriggerType;
clock?: string;
once?: number;
integer?: number;
timing?: {
week: number;
clock: string;
};
}
export declare enum TransferTaskType {
Unknown = 0,
Upload = 1,
Download = 2,
Sync = 3
}
export declare enum UploadStatus {
UPLOADING = "uploading",
PAUSED = "paused",
CANCELLED = "cancelled"
}
export interface UserInfo {
username?: string;
password?: string;
spaceId?: number;
uk?: string;
token?: string;
isEncrypt?: boolean;
authWay?: number;
}
export interface ClientResult {
eventType: string;
data?: any;
result: boolean;
code: number;
}
export interface BaseResponse {
action: string;
message: string;
success: boolean;
result: number;
}
export declare enum FileType {
File = 0,
Folder = 1,
VirtualFolder = 2
}
export interface FileInfo {
file_type: FileType;
name: string;
size: number;
time: number;
type: boolean;
create_time?: number;
}
export interface GroupInfo {
id: number;
name: string;
write_time: number;
}
export interface AttributesResponse extends BaseResponse {
file_count: number;
file_size: number;
folder_count: number;
is_end: boolean;
path: string;
write_time: number;
}
export interface ListResponse extends BaseResponse {
path: string;
group_id: string;
list: FileInfo[];
}
export interface LoginResponse extends BaseResponse {
enable_server_search: boolean;
group: GroupInfo[];
}
export interface MoveResponse extends BaseResponse {
failed_count: number;
file_count: number;
is_end: boolean;
}
export interface RenameResponse extends MoveResponse {
}
export interface SelectFileResponse extends BaseResponse {
list: {
name: string;
file_type: FileType;
file_size: number;
}[];
}
export interface P2pInfoResponse extends BaseResponse {
connected: boolean;
enable: boolean;
id: string;
key: string;
}
export interface PreviewResponse extends BaseResponse {
path: string;
url: string;
}
export interface UpdateClientResponse extends BaseResponse {
version: string;
}
export interface CheckResponse extends BaseResponse {
ftpmanager_version: string;
sign: string;
}
export interface CopyResponse extends MoveResponse {
}
export interface RemoveResponse extends MoveResponse {
}
export interface UploadResponse extends BaseResponse {
task_start: boolean;
task_id: number;
}
export interface SyncResponse extends BaseResponse {
task_id: number;
}
export interface TaskCountResponse extends BaseResponse {
count: number;
}
export interface TaskInfo {
'drop-rate': number;
'elapsed-time': number;
'end-time': string;
'file-failed': number;
'file-max': number;
'file-pos': number;
'local-path': string[];
mss: number;
'protocol-type': string;
'remote-path': string[];
rtt: number;
'size-max': number;
'size-pos': number;
speed: number;
'start-time': string;
'task-group': string;
'task-id': string;
'task-name': string;
'task-state': string;
'task-type': string;
}
export interface GroupInfo {
write_time: number;
id: number;
name: string;
}
export interface TaskCountResponse extends BaseResponse {
count: number;
}
export interface AllTaskStatusResponse extends BaseResponse {
task_list: TaskInfo[];
}
export interface GroupListResponse extends BaseResponse {
group: GroupInfo[];
}
export interface TaskStatusResponse extends BaseResponse {
task_list: TaskInfo[];
}
export interface TaskStateChangeResponse extends BaseResponse {
state: REQUEST_STATE;
task_id: number;
}
export interface CheckFilesRequest {
action: string;
task_id: number;
task_server_id: string;
files: Array<{
name: string;
path: string;
}>;
}
export interface TaskInfoResponse extends BaseResponse {
drop_rate: number;
elapsed_time: number;
end_time: string;
failed: number;
file_max: number;
file_pos: number;
files: string[];
is_timing_task: boolean;
is_upload: boolean;
local_path: string[];
mss: number;
protocol_type: string;
remote_path: string[];
result: number;
rtt: number;
show_name: string;
size_max: number;
size_pos: number;
speed: number;
start_time: string;
state: REQUEST_STATE;
task_id: number;
task_server_id?: string;
task_name: string;
timing_type: number;
}
export declare type DownloadResponse = UploadResponse;
export interface ListenEvent {
(command: ClientResponse.CHECK, handler?: Handler): void;
(command: ClientResponse.LIST, handler?: Handler): void;
(command: ClientResponse.LOGIN, handler?: Handler): void;
(command: ClientResponse.MKDIR, handler?: Handler): void;
(command: ClientResponse.MOVE, handler?: Handler): void;
(command: ClientResponse.COPY, handler?: Handler): void;
(command: ClientResponse.RENAME, handler?: Handler): void;
(command: ClientResponse.REMOVE, handler?: Handler): void;
(command: ClientResponse.GET_ATTRIBUTES, handler?: Handler): void;
(command: ClientResponse.GET_GROUP_LIST, handler?: Handler): void;
(command: ClientResponse.SELECT_P2P_FILE, handler?: Handler): void;
(command: ClientResponse.P2P_INFO, handler?: Handler): void;
(command: ClientResponse.PREVIEW, handler?: Handler): void;
(command: ClientResponse.UPDATE_CLIENT, handler?: Handler): void;
(command: ClientResponse.UPLOAD, handler?: Handler): void;
(command: ClientResponse.DOWNLOAD, handler?: Handler): void;
(command: ClientResponse.SET_SPACE_ID, handler?: Handler): void;
(command: ClientResponse.TASK_COUNT, handler?: Handler): void;
(command: ClientResponse.SYNC, handler?: Handler): void;
(command: ClientResponse.GET_TASK_STATUS, handler?: Handler): void;
(command: ClientResponse.GET_ALL_TASK_STATUS, handler?: Handler): void;
(command: ClientResponse.TASK_STATE_CHANGED, handler?: Handler): void;
(command: ClientResponse.GET_TASK_INFO, handler?: Handler): void;
(command: ClientResponse.GET_TASK_INFO_BY_SERVER_ID, handler?: Handler): void;
(command: ClientResponse.GET_COMPLETE_TASK_INFO, handler?: Handler): void;
(command: ClientResponse.GET_COMPLETE_TASK_INFO_BY_SERVER_ID, handler?: Handler): void;
(command: ClientResponse.TRANSFER_SUCCESS, handler?: Handler): void;
(command: ClientResponse.CHECK_FILES, handler?: Handler): void;
}
export interface ServerConfig {
url: string;
}
export interface ServerBaseResponse {
data: T;
success: boolean;
result: number;
}
export declare type ServerLoginResponse = ServerBaseResponse<{
black_list: string;
enable_compress: boolean;
enable_search: boolean;
enable_server_trans: boolean;
enable_sync: boolean;
enable_upload: boolean;
enable_upload_event: boolean;
enable_watermark: boolean;
forbid_client_filter_switch: boolean;
group: {
black_list: string;
enable_upload: boolean;
forbid_client_filter_switch: boolean;
id: number;
max_upload: number;
name: string;
trans_ignore_reg: string;
trans_ignore_reg_switch: boolean;
trans_ignore_size: number;
trans_ignore_size_switch: boolean;
white_list: string;
write_time: number;
}[];
limit_code: number;
limit_download: boolean;
limit_upload: boolean;
max_upload: number;
report_task_state: boolean;
report_traffic: boolean;
result: number;
rsync_blocklen: number;
rsync_magic: number;
server_version: string;
soft_version: number;
support_rsync_trans: boolean;
trans_ignore_reg: string;
trans_ignore_reg_switch: boolean;
trans_ignore_size: number;
trans_ignore_size_switch: boolean;
trans_unit: number;
watermark_position: number;
white_list: string;
http_dl_port?: number;
https_dl_port?: number;
}>;
export declare type ServerListResponse = ServerBaseResponse<{
file_type: FileType;
name: string;
size: number;
time: number;
type: boolean;
create_time?: number;
}[]>;
export declare type ServerFileInfoResponse = ServerBaseResponse<{
supportResumeTrans: boolean;
supportRsync: boolean;
writeTime: number;
fileSize: number;
mode: number;
encryptType?: number;
keyEncryptType?: number;
encryptKey?: Uint8Array;
sha256?: Uint8Array;
endEncryptKeyLen?: number;
}>;
export declare type ServerActionResponse = ServerBaseResponse<{
failedCount: number;
isEnd: 0 | 1;
successCount: number;
}>;
export interface ServerAttributesResponse extends ServerBaseResponse {
file_count: number;
file_size: number;
folder_count: number;
isEnd: 0 | 1;
write_time: number;
}
export interface ServerDownloadStartResponse {
writeTime: number | Long;
fileSeek: number | Long;
errorCode: number;
sysError: number;
}
export declare type ServerDownloadingResponse = ServerBaseResponse<{
id: number;
size: number;
}>;
export declare type ServerDownloadSuccessResponse = ServerBaseResponse<{
id: number;
size: number;
file: Blob;
}>;
export declare type ServerUploadSuccessResponse = ServerBaseResponse<{
size: number;
requestId?: number;
}> & {
requestId: number;
};
export declare type ServerUploadingResponse = ServerBaseResponse<{
id: number;
size: number;
}>;
export declare type ServerHttpDownloadResponse = ServerBaseResponse<{
uri: string;
downloadUrl: string;
}>;
export declare type ServerHttpPreviewResponse = ServerBaseResponse<{
uri: string;
previewUrl: string;
}>;
export declare enum CleanType {
FileSystemClean = 0
}
export interface ServerExtractFileResponse extends ServerBaseResponse {
errorCode: number;
isEnd: boolean;
path: string[];
}
export interface RecycleBinItem {
fileId: number;
fileName: string;
sourceFolder: string;
fileSize: number;
cleanTime: number;
cleanType: CleanType;
documentType?: number;
}
export declare type ServerRecycleBinRecordsResponse = ServerBaseResponse<{
items: RecycleBinItem[];
page: number;
total: number;
}>;
export declare type ServerRemoveRecycleBinItems = ServerBaseResponse<{
items: {
fileId?: number;
errorCode?: number;
}[];
}>;
export declare type ServerRestoreRecycleBinItems = ServerRemoveRecycleBinItems;
export interface VirusRecordItem {
id: number;
fileName: string;
filePath: string;
fileSize: number;
virusName: string;
userName: string;
userEmail: string;
unixTimeStamp: number;
ip: string;
userId?: number;
recordType: number;
}
declare enum SortFields {
Filename = 1,
FileSize = 2,
VirusName = 3,
TimeStamp = 4,
Username = 5
}
export interface TaskState {
state?: number | null;
filePos?: number | Long | null;
fileMax?: number | Long | null;
sizePos?: number | Long | null;
sizeMax?: number | Long | null;
failedCount?: number | Long | null;
transMode?: number | null;
taskSpeed?: number | null;
taskLastError?: number | null;
eventType?: number | null;
}
export declare type VirusListParams = {
pageIndex: number;
pageSize: number;
storageSpaceId: number;
fileName: string;
userName: string;
userEmail: string;
startTime: number | Long;
endTime: number | Long;
isRelativePath: boolean;
descOrder?: boolean;
sortField?: SortFields | number;
userId?: number;
};
export declare type ServerGetVirusList = ServerBaseResponse<{
total: number;
current: number;
virusRecordList: VirusRecordItem[];
}>;
export interface ServerEvent {
(command: ServerResponse.LOGIN, handler?: Handler): void;
(command: ServerResponse.LIST, handler?: Handler): void;
(command: ServerResponse.MKDIR, handler?: Handler): void;
(command: ServerResponse.GET_SERVER_FILE_INFO, handler?: Handler): void;
(command: ServerResponse.REMOVE, handler?: Handler): void;
(command: ServerResponse.RENAME, handler?: Handler): void;
(command: ServerResponse.MOVE_OR_COPY, handler?: Handler): void;
(command: ServerResponse.GET_ATTRIBUTES, handler?: Handler): void;
(command: ServerResponse.ON_DOWNLOAD_START, handler?: Handler): void;
(command: ServerResponse.ON_DOWNLOADING, handler?: Handler): void;
(command: ServerResponse.ON_DOWNLOAD_SUCCESS, handler?: Handler): void;
(command: ServerResponse.ON_UPLOAD_START, handler?: Handler): void;
(command: ServerResponse.ON_UPLOADING, handler?: Handler): void;
(command: ServerResponse.ON_UPLOAD_SUCCESS, handler?: Handler): void;
(command: ServerResponse.SET_SPACE_ID, handler?: Handler): void;
(command: ServerResponse.HTTP_DOWNLOAD, handler?: Handler): void;
(command: ServerResponse.CLEAR_RECYCLE_BIN, handler?: Handler): void;
(command: ServerResponse.GET_VIRUS_FILE_LIST, handler?: Handler): void;
(command: ServerResponse.REMOVE_RECYCLE_BIN_ITEMS, handler?: Handler): void;
(command: ServerResponse.RESTORE_RECYCLE_BIN_ITEMS, handler?: Handler): void;
(command: ServerResponse.GET_RECYCLE_BIN_RECORDS, handler?: Handler): void;
(command: ServerResponse.STOPPED_BY_ADMIN, handler?: Handler): void;
(command: ServerResponse.EXTRACT_FILES, handler?: Handler): void;
(command: ServerResponse.HTTP_PREVIEW, handler?: Handler): void;
}
export { TaskStatus, FileStatus, UploadTaskOptions, TaskProgress, FileProgress, TaskSummary, TaskError, ScannedFile, QueuedFile, } from './server/create-task/types';