diff --git a/types/cassandra-driver/index.d.ts b/types/cassandra-driver/index.d.ts index 446cd0f7fb..264d5ddec8 100644 --- a/types/cassandra-driver/index.d.ts +++ b/types/cassandra-driver/index.d.ts @@ -732,19 +732,10 @@ export namespace errors { } export namespace metadata { - let Aggregate: AggregateStatic; - let Index: IndexStatic; - let MaterializedView: MaterializedViewStatic; let Metadata: MetadataStatic; - let SchemaFunction: SchemaFunctionStatic; - let TableMetadata: TableMetadataStatic; type caching = "all" | "keys_only" | "rows_only" | "none"; - interface AggregateStatic { - new (): Aggregate; - } - interface Aggregate { argumentTypes: Array<{ code: number, info: any }>; finalFunction: string; @@ -756,10 +747,6 @@ export namespace metadata { stateType: string; } - interface ClientStateStatic { - new (): ClientState; - } - interface ClientState { getConnectedHosts(): Host[]; getInFlightQueries(host: Host): number; @@ -812,13 +799,6 @@ export namespace metadata { composites } - interface IndexStatic { - new (name: string, target: string, kind: string | IndexType, options: object): Index; - - fromRows(indexRows: types.Row[]): Index[]; - fromColumnRows(columnRows: types.Row[], columnsByName: { [key: string]: ColumnInfo }): Index[]; - } - interface Index { kind: IndexType; name: string; @@ -830,11 +810,43 @@ export namespace metadata { isKeysKind(): boolean; } - interface MaterializedViewStatic { - new (name: string): MaterializedView; + interface MaterializedView extends DataCollection { } + + class Token { + getType(): types.dataTypes; + getValue(): any; + compare(other: Token): number; + equals(other: Token): boolean; } - interface MaterializedView extends DataCollection { } + interface TokenRange { + start: Token; + end: Token; + + splitEvenly(numberOfSplits: number): TokenRange[]; + isEmpty(): boolean; + isWrappedAround(): boolean; + unwrap(): TokenRange[]; + contains(token: Token): boolean; + equals(other: TokenRange): boolean; + compare(other: TokenRange): number; + } + + class ByteOrderedToken extends Token {} + class Murmur3Token extends Token {} + class BytRandomToken extends Token {} + + interface QueryTrace { + requestType: any; + coordinator: any; + parameters: any; + startedAt: any; + duration: any; + clientAddress: any; + events: Array<{ id: any; activity: any; source: any; elapsed: any; thread: any }>; + } + + type MetadataCallback = (err: any, retVal: T) => void; interface MetadataStatic { new (options: ClientOptions, controlConnection: any): Metadata; @@ -843,21 +855,37 @@ export namespace metadata { interface Metadata { clearPrepared(): void; - getAggregate(keyspaceName: string, name: string, signature: string[] | Array<{ code: number, info: any }>, callback: Callback): void; - getAggregates(keyspaceName: string, name: string, callback: Callback): void; - getFunction(keyspaceName: string, name: string, signature: string[] | Array<{ code: number, info: any }>, callback: Callback): void; - getFunctions(keyspaceName: string, name: string, callback: Callback): void; - getMaterializedView(keyspaceName: string, name: string, callback: Callback): void; - getReplicas(keyspaceName: string, tokenBuffer: Buffer): any[]; - getTable(keyspaceName: string, name: string, callback: Callback): void; - getTrace(traceId: types.Uuid, callback: Callback): void; - getUdt(keyspaceName: string, name: string, callback: Callback): void; - refreshKeyspace(name: string, callback?: Callback): void; - refreshKeyspaces(callback?: Callback): void; - } - - interface SchemaFunctionStatic { - new (): SchemaFunction; + getAggregate(keyspaceName: string, name: string, signature: string[] | Array<{ code: number, info: any }>, callback: MetadataCallback): void; + getAggregate(keyspaceName: string, name: string, signature: string[] | Array<{ code: number, info: any }>): Promise; + getAggregates(keyspaceName: string, name: string, callback: MetadataCallback): void; + getAggregates(keyspaceName: string, name: string): Promise; + getFunction(keyspaceName: string, name: string, signature: string[] | Array<{ code: number, info: any }>, callback: MetadataCallback): void; + getFunction(keyspaceName: string, name: string, signature: string[] | Array<{ code: number, info: any }>): Promise; + getFunctions(keyspaceName: string, name: string, callback: MetadataCallback): void; + getFunctions(keyspaceName: string, name: string): Promise; + getMaterializedView(keyspaceName: string, name: string, callback: MetadataCallback): void; + getMaterializedView(keyspaceName: string, name: string, callback: Callback): Promise; + getReplicas(keyspaceName: string, token: Buffer | Token | TokenRange): any[]; // TODO + getTable(keyspaceName: string, name: string, callback: MetadataCallback): void; + getTable(keyspaceName: string, name: string): Promise; + getTokenRanges(): Set; + getTokenRangesForHost(keyspaceName: string, host: Host): Set | null; + getTrace(traceId: types.Uuid, consistency: types.consistencies, callback: MetadataCallback): void; + getTrace(traceId: types.Uuid, consistency: types.consistencies, callback: Callback): Promise; + getTrace(traceId: types.Uuid, callback: MetadataCallback): void; + getTrace(traceId: types.Uuid): Promise; + getUdt(keyspaceName: string, name: string, callback: MetadataCallback): void; // TODO + getUdt(keyspaceName: string, name: string): Promise; // TODO + newToken(components: Buffer[] | Buffer | string): Token; + newTokenRange(start: Token, end: Token): TokenRange; + refreshKeyspace(name: string, callback: Callback): void; + refreshKeyspace(name: string): Promise; + refreshKeyspaces(waitReconnect: () => boolean, callback: Callback): void; + refreshKeyspaces(waitReconnect: () => boolean): Promise; + refreshKeyspaces(waitReconnect: boolean, callback: Callback): void; + refreshKeyspaces(waitReconnect: boolean): Promise; + refreshKeyspaces(callback: Callback): void; + refreshKeyspaces(): Promise; } interface SchemaFunction { @@ -872,10 +900,6 @@ export namespace metadata { signature: string[]; } - interface TableMetadataStatic { - new (name: string): TableMetadata; - } - interface TableMetadata extends DataCollection { indexes: Index[]; indexInterval?: number;