signal-desktop/ts/sqlcipher.d.ts
2020-11-04 13:03:13 -06:00

184 lines
5.3 KiB
TypeScript

// Copyright 2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// Taken from:
// https://github.com/DefinitelyTyped/DefinitelyTyped/blob/8bf8aedba75ada257428c4846d2bc7d14e3b4be8/types/sqlite3/index.d.ts
declare module '@journeyapps/sqlcipher' {
// Type definitions for sqlite3 3.1
// Project: http://github.com/mapbox/node-sqlite3
// Definitions by: Nick Malaguti <https://github.com/nmalaguti>
// Sumant Manne <https://github.com/dpyro>
// Behind The Math <https://github.com/BehindTheMath>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/// <reference types="node" />
import events = require('events');
export const OPEN_READONLY: number;
export const OPEN_READWRITE: number;
export const OPEN_CREATE: number;
export const OPEN_SHAREDCACHE: number;
export const OPEN_PRIVATECACHE: number;
export const OPEN_URI: number;
export const cached: {
Database(
filename: string,
callback?: (this: Database, err: Error | null) => void
): Database;
Database(
filename: string,
mode?: number,
callback?: (this: Database, err: Error | null) => void
): Database;
};
export interface RunResult extends Statement {
lastID: number;
changes: number;
}
export class Statement {
bind(callback?: (err: Error | null) => void): this;
bind(...params: any[]): this;
reset(callback?: (err: null) => void): this;
finalize(callback?: (err: Error) => void): Database;
run(callback?: (err: Error | null) => void): this;
run(
params: any,
callback?: (this: RunResult, err: Error | null) => void
): this;
run(...params: any[]): this;
get(callback?: (err: Error | null, row?: any) => void): this;
get(
params: any,
callback?: (this: RunResult, err: Error | null, row?: any) => void
): this;
get(...params: any[]): this;
all(callback?: (err: Error | null, rows: any[]) => void): this;
all(
params: any,
callback?: (this: RunResult, err: Error | null, rows: any[]) => void
): this;
all(...params: any[]): this;
each(
callback?: (err: Error | null, row: any) => void,
complete?: (err: Error | null, count: number) => void
): this;
each(
params: any,
callback?: (this: RunResult, err: Error | null, row: any) => void,
complete?: (err: Error | null, count: number) => void
): this;
each(...params: any[]): this;
}
export class Database extends events.EventEmitter {
constructor(filename: string, callback?: (err: Error | null) => void);
constructor(
filename: string,
mode?: number,
callback?: (err: Error | null) => void
);
close(callback?: (err: Error | null) => void): void;
run(
sql: string,
callback?: (this: RunResult, err: Error | null) => void
): this;
run(
sql: string,
params: any,
callback?: (this: RunResult, err: Error | null) => void
): this;
run(sql: string, ...params: any[]): this;
get(
sql: string,
callback?: (this: Statement, err: Error | null, row: any) => void
): this;
get(
sql: string,
params: any,
callback?: (this: Statement, err: Error | null, row: any) => void
): this;
get(sql: string, ...params: any[]): this;
all(
sql: string,
callback?: (this: Statement, err: Error | null, rows: any[]) => void
): this;
all(
sql: string,
params: any,
callback?: (this: Statement, err: Error | null, rows: any[]) => void
): this;
all(sql: string, ...params: any[]): this;
each(
sql: string,
callback?: (this: Statement, err: Error | null, row: any) => void,
complete?: (err: Error | null, count: number) => void
): this;
each(
sql: string,
params: any,
callback?: (this: Statement, err: Error | null, row: any) => void,
complete?: (err: Error | null, count: number) => void
): this;
each(sql: string, ...params: any[]): this;
exec(
sql: string,
callback?: (this: Statement, err: Error | null) => void
): this;
prepare(
sql: string,
callback?: (this: Statement, err: Error | null) => void
): Statement;
prepare(
sql: string,
params: any,
callback?: (this: Statement, err: Error | null) => void
): Statement;
prepare(sql: string, ...params: any[]): Statement;
serialize(callback?: () => void): void;
parallelize(callback?: () => void): void;
on(event: 'trace', listener: (sql: string) => void): this;
on(event: 'profile', listener: (sql: string, time: number) => void): this;
on(event: 'error', listener: (err: Error) => void): this;
on(event: 'open' | 'close', listener: () => void): this;
on(event: string, listener: (...args: any[]) => void): this;
configure(option: 'busyTimeout', value: number): void;
interrupt(): void;
}
export function verbose(): sqlite3;
export interface sqlite3 {
OPEN_READONLY: number;
OPEN_READWRITE: number;
OPEN_CREATE: number;
OPEN_SHAREDCACHE: number;
OPEN_PRIVATECACHE: number;
OPEN_URI: number;
cached: typeof cached;
RunResult: RunResult;
Statement: typeof Statement;
Database: typeof Database;
verbose(): this;
}
}