///
import { DuckDBModule } from './duckdb_module';
import { UDFFunction } from './udf_function';
/** Helper to decode text */
export declare const decodeText: (input?: BufferSource) => string;
/** Copy a buffer */
export declare function failWith(mod: DuckDBModule, msg: string): void;
/** Copy a buffer */
export declare function copyBuffer(mod: DuckDBModule, begin: number, length: number): Uint8Array;
/** Decode a string */
export declare function readString(mod: DuckDBModule, begin: number, length: number): string;
/** The data protocol */
export declare enum DuckDBDataProtocol {
BUFFER = 0,
NODE_FS = 1,
BROWSER_FILEREADER = 2,
BROWSER_FSACCESS = 3,
HTTP = 4,
S3 = 5
}
/** File flags for opening files*/
export declare enum FileFlags {
FILE_FLAGS_READ = 1,
FILE_FLAGS_WRITE = 2,
FILE_FLAGS_DIRECT_IO = 4,
FILE_FLAGS_FILE_CREATE = 8,
FILE_FLAGS_FILE_CREATE_NEW = 16,
FILE_FLAGS_APPEND = 32,
FILE_FLAGS_PRIVATE = 64,
FILE_FLAGS_NULL_IF_NOT_EXISTS = 128,
FILE_FLAGS_PARALLEL_ACCESS = 256,
FILE_FLAGS_EXCLUSIVE_CREATE = 512,
FILE_FLAGS_NULL_IF_EXISTS = 1024
}
/** Configuration for the AWS S3 Filesystem */
export interface S3Config {
region?: string;
endpoint?: string;
accessKeyId?: string;
secretAccessKey?: string;
sessionToken?: string;
}
/** An info for a file registered with DuckDB */
export interface DuckDBFileInfo {
cacheEpoch: number;
fileId: number;
fileName: string;
dataProtocol: DuckDBDataProtocol;
dataUrl: string | null;
reliableHeadRequests?: boolean;
allowFullHttpReads?: boolean;
forceFullHttpReads?: boolean;
s3Config?: S3Config;
}
/** Global info for all files registered with DuckDB */
export interface DuckDBGlobalFileInfo {
cacheEpoch: number;
reliableHeadRequests?: boolean;
allowFullHttpReads?: boolean;
forceFullHttpReads?: boolean;
s3Config?: S3Config;
}
export interface PreparedDBFileHandle {
path: string;
handle: any;
fromCached: boolean;
}
/** Call a function with packed response buffer */
export declare function callSRet(mod: DuckDBModule, funcName: string, argTypes: Array, args: Array): [number, number, number];
/** Drop response buffers */
export declare function dropResponseBuffers(mod: DuckDBModule): void;
/** The duckdb runtime */
export interface DuckDBRuntime {
_files?: Map;
_udfFunctions: Map;
testPlatformFeature(mod: DuckDBModule, feature: number): boolean;
getDefaultDataProtocol(mod: DuckDBModule): number;
openFile(mod: DuckDBModule, fileId: number, flags: FileFlags): void;
syncFile(mod: DuckDBModule, fileId: number): void;
closeFile(mod: DuckDBModule, fileId: number): void;
dropFile(mod: DuckDBModule, fileNamePtr: number, fileNameLen: number): void;
getLastFileModificationTime(mod: DuckDBModule, fileId: number): number;
truncateFile(mod: DuckDBModule, fileId: number, newSize: number): void;
readFile(mod: DuckDBModule, fileId: number, buffer: number, bytes: number, location: number): number;
writeFile(mod: DuckDBModule, fileId: number, buffer: number, bytes: number, location: number): number;
removeDirectory(mod: DuckDBModule, pathPtr: number, pathLen: number): void;
checkDirectory(mod: DuckDBModule, pathPtr: number, pathLen: number): boolean;
createDirectory(mod: DuckDBModule, pathPtr: number, pathLen: number): void;
listDirectoryEntries(mod: DuckDBModule, pathPtr: number, pathLen: number): boolean;
glob(mod: DuckDBModule, pathPtr: number, pathLen: number): void;
moveFile(mod: DuckDBModule, fromPtr: number, fromLen: number, toPtr: number, toLen: number): void;
checkFile(mod: DuckDBModule, pathPtr: number, pathLen: number): boolean;
removeFile(mod: DuckDBModule, pathPtr: number, pathLen: number): void;
prepareFileHandle?: (path: string, protocol: DuckDBDataProtocol) => Promise;
prepareFileHandles?: (path: string[], protocol: DuckDBDataProtocol) => Promise;
prepareDBFileHandle?: (path: string, protocol: DuckDBDataProtocol) => Promise;
progressUpdate(final: number, percentage: number, iteration: number): void;
callScalarUDF(mod: DuckDBModule, response: number, funcId: number, descPtr: number, descSize: number, ptrsPtr: number, ptrsSize: number): void;
}
export declare const DEFAULT_RUNTIME: DuckDBRuntime;