///
///
import { ArchiveFileInfo, ArchivesConfig, ArchivesSyncStatus, FindConfig, SourceConfig } from "../IArchives";
import { ActiveBucketInfo, ServerBucketInfo } from "./storageServerState";
import { MachineState } from "../../security/machines/machines";
import { AccessTotals, AccessSummaryState } from "./accessStats";
import { LogFileInfo } from "../StreamingLogs";
import type { SummaryEntry } from "../../treeSummary";
export declare const REMOTE_STORAGE_CLASS_GUID = "RemoteStorageController-b7e42a91";
export declare const STORAGE_AUTH_PURPOSE = "remoteStorage-auth-1";
export declare const STORAGE_NOT_AUTHENTICATED = "REMOTE_STORAGE_NOT_AUTHENTICATED_cf2f7b1e";
export declare const STORAGE_ACCESS_DENIED = "REMOTE_STORAGE_ACCESS_DENIED_9d81a4c0";
export type AuthTokenData = {
purpose: string;
time: number;
server: string;
};
export type AuthToken = {
certPem: string;
issuerPem: string;
signature: string;
data: AuthTokenData;
};
export type AccessState = {
machineId: string;
ip: string;
hasAccess: boolean;
reason?: string;
trustedMachines?: MachineState[];
};
export declare function broadcastRoutingChanged(): void;
export declare const RemoteStorageController: import("socket-function/SocketFunctionTypes").SocketRegistered<{
ping: () => Promise<{}>;
authenticate: (token: AuthToken) => Promise<{
machineId: string;
ip: string;
}>;
getAccessState: (config: {
account: string;
}) => Promise;
adminListActiveBuckets: () => Promise<{
account: string;
bucketName: string;
}[]>;
get2: (config: {
account: string;
bucketName: string;
path: string;
sourceConfig: SourceConfig;
range?: {
start: number;
end: number;
};
internal?: boolean;
includeTombstones?: boolean;
includeMarked?: boolean;
}) => Promise<{
data: Buffer;
writeTime: number;
size: number;
} | undefined>;
set: (config: {
account: string;
bucketName: string;
path: string;
data: Buffer;
sourceConfig: SourceConfig;
lastModified?: number;
forceSetImmutable?: boolean;
internal?: boolean;
undelete?: boolean;
}) => Promise;
del: (config: {
account: string;
bucketName: string;
path: string;
sourceConfig: SourceConfig;
lastModified?: number;
internal?: boolean;
}) => Promise;
move: (config: {
account: string;
bucketName: string;
fromPath: string;
toPath: string;
sourceConfig: SourceConfig;
}) => Promise;
getInfo: (config: {
account: string;
bucketName: string;
path: string;
sourceConfig: SourceConfig;
includeTombstones?: boolean;
}) => Promise<{
writeTime: number;
size: number;
} | undefined>;
findInfo: (config: FindConfig & {
account: string;
bucketName: string;
prefix: string;
sourceConfig: SourceConfig;
}) => Promise;
getChangesAfter2: (config: {
account: string;
bucketName: string;
sourceConfig: SourceConfig;
time: number;
routes?: [number, number][];
internal?: boolean;
}) => Promise;
getArchivesConfig: (config: {
account: string;
bucketName: string;
}) => Promise;
listBuckets: (config: {
account: string;
}) => Promise;
getActiveBucket: (config: {
account: string;
bucketName: string;
}) => Promise;
activateBucket: (config: {
account: string;
bucketName: string;
}) => Promise;
clearWriteStats: (config: {
account: string;
}) => Promise<{
clearedBuckets: number;
}>;
getAccessStats: (config: {
account: string;
}) => Promise;
getAccessSummaries: (config: {
account: string;
operation: string;
maxCount: number;
weightBySize?: boolean;
}) => Promise[]>;
getIndexInfo: (config: {
account: string;
bucketName: string;
}) => Promise<{
fileCount: number;
byteCount: number;
sources: {
debugName: string;
fileCount: number;
byteCount: number;
}[];
} | undefined>;
getSyncStatus: (config: {
account: string;
bucketName: string;
}) => Promise;
listLogFiles: (config: {
account: string;
}) => Promise;
getLogFile: (config: {
account: string;
name: string;
}) => Promise;
startLargeFile: (config: {
account: string;
bucketName: string;
path: string;
sourceConfig: SourceConfig;
lastModified?: number;
forceSetImmutable?: boolean;
noChecks?: boolean;
internal?: boolean;
}) => Promise;
uploadPart: (config: {
uploadId: string;
data: Buffer;
offset?: number;
}) => Promise;
finishLargeFile: (config: {
uploadId: string;
}) => Promise;
cancelLargeFile: (config: {
uploadId: string;
}) => Promise;
httpEntry: (config?: {
requireCalls?: string[];
cacheTime?: number;
}) => Promise;
}>;