// Type definitions for N3 1.4 // Project: https://github.com/rdfjs/n3.js // Definitions by: Fred Eisele // Ruben Taelman // Laurens Rietveld // Joachim Van Herwegen // Alexey Morozov // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.4 /// import * as stream from "stream"; import * as RDF from "rdf-js"; import { EventEmitter } from "events"; export interface Prefixes { [key: string]: I; } export type Term = NamedNode | BlankNode | Literal | Variable | DefaultGraph; export type PrefixedToIri = (suffix: string) => NamedNode; export class NamedNode implements RDF.NamedNode { readonly termType: "NamedNode"; readonly value: Iri; constructor(iri: Iri); readonly id: string; toJSON(): {}; equals(other: RDF.Term): boolean; static subclass(type: any): void; } export class BlankNode implements RDF.BlankNode { static nextId: number; readonly termType: "BlankNode"; readonly value: string; constructor(name: string); readonly id: string; toJSON(): {}; equals(other: RDF.Term): boolean; static subclass(type: any): void; } export class Variable implements RDF.Variable { readonly termType: "Variable"; readonly value: string; constructor(name: string); readonly id: string; toJSON(): {}; equals(other: RDF.Term): boolean; static subclass(type: any): void; } export class Literal implements RDF.Literal { static readonly langStringDatatype: NamedNode; readonly termType: "Literal"; readonly value: string; readonly id: string; toJSON(): {}; equals(other: RDF.Term): boolean; static subclass(type: any): void; readonly language: string; readonly datatype: NamedNode; readonly datatypeString: string; constructor(id: string); } export class DefaultGraph implements RDF.DefaultGraph { readonly termType: "DefaultGraph"; readonly value: ""; constructor(); readonly id: string; toJSON(): {}; equals(other: RDF.Term): boolean; static subclass(type: any): void; } export type Quad_Subject = NamedNode | BlankNode | Variable; export type Quad_Predicate = NamedNode | Variable; export type Quad_Object = NamedNode | Literal | BlankNode | Variable; export type Quad_Graph = DefaultGraph | NamedNode | BlankNode | Variable; export class BaseQuad implements RDF.BaseQuad { constructor(subject: Term, predicate: Term, object: Term, graph?: Term); termType: 'Quad'; value: ''; subject: Term; predicate: Term; object: Term; graph: Term; equals(other: RDF.BaseQuad): boolean; toJSON(): string; } export class Quad extends BaseQuad implements RDF.Quad { constructor(subject: Term, predicate: Term, object: Term, graph?: Term); subject: Quad_Subject; predicate: Quad_Predicate; object: Quad_Object; graph: Quad_Graph; equals(other: RDF.BaseQuad): boolean; toJSON(): string; } export class Triple extends Quad implements RDF.Quad {} export namespace DataFactory { function namedNode(value: Iri): NamedNode; function blankNode(value?: string): BlankNode; function literal(value: string | number, languageOrDatatype?: string | RDF.NamedNode): Literal; function variable(value: string): Variable; function defaultGraph(): DefaultGraph; function quad(subject: RDF.Quad_Subject, predicate: RDF.Quad_Predicate, object: RDF.Quad_Object, graph?: RDF.Quad_Graph): Quad; function quad(subject: Q_In['subject'], predicate: Q_In['predicate'], object: Q_In['object'], graph?: Q_In['graph']): Q_Out; function triple(subject: RDF.Quad_Subject, predicate: RDF.Quad_Predicate, object: RDF.Quad_Object): Quad; function triple(subject: Q_In['subject'], predicate: Q_In['predicate'], object: Q_In['object']): Q_Out; } export type ErrorCallback = (err: Error, result: any) => void; export type QuadCallback = (result: Q) => void; export type QuadPredicate = (result: Q) => boolean; export type OTerm = RDF.Term | string | null; export type Logger = (message?: any, ...optionalParams: any[]) => void; export interface BlankTriple { predicate: Q['predicate']; object: Q['object']; } export interface ParserOptions { format?: string; factory?: RDF.DataFactory; baseIRI?: string; blankNodePrefix?: string; } export type ParseCallback = (error: Error, quad: Q, prefixes: Prefixes) => void; export class Parser { constructor(options?: ParserOptions); parse(input: string): Q[]; parse(input: string, callback: ParseCallback): void; } export class StreamParser extends stream.Transform implements RDF.Stream, RDF.Sink> { constructor(options?: ParserOptions); import(stream: EventEmitter): RDF.Stream; } export interface WriterOptions { format?: string; prefixes?: Prefixes; end?: boolean; } export class Writer { constructor(options?: WriterOptions); constructor(fd: any, options?: WriterOptions); quadToString(subject: Q['subject'], predicate: Q['predicate'], object: Q['object'], graph?: Q['graph']): string; quadsToString(quads: RDF.Quad[]): string; addQuad(subject: Q['subject'], predicate: Q['predicate'], object: Q['object'] | Array, graph?: Q['graph'], done?: () => void): void; addQuad(quad: RDF.Quad): void; addQuads(quads: RDF.Quad[]): void; addPrefix(prefix: string, iri: RDF.NamedNode | string , done?: () => void): void; addPrefixes(prefixes: Prefixes, done?: () => void): void; end(err?: ErrorCallback, result?: string): void; blank(predicate: Q['predicate'], object: Q['object']): BlankNode; blank(triple: BlankTriple | RDF.Quad | BlankTriple[] | RDF.Quad[]): BlankNode; list(triple: Array): Quad_Object[]; } export class StreamWriter extends stream.Transform implements RDF.Sink, EventEmitter> { constructor(options?: WriterOptions); constructor(fd: any, options?: WriterOptions); import(stream: RDF.Stream): EventEmitter; } export class Store implements RDF.Store { constructor(triples?: Q_RDF[], options?: StoreOptions); readonly size: number; addQuad(subject: Q_RDF['subject'], predicate: Q_RDF['predicate'], object: Q_RDF['object'] | Array, graph?: Q_RDF['graph'], done?: () => void): void; addQuad(quad: Q_RDF): void; addQuads(quads: Q_RDF[]): void; import(stream: RDF.Stream): EventEmitter; removeQuad(subject: Q_RDF['subject'], predicate: Q_RDF['predicate'], object: Q_RDF['object'] | Array, graph?: Q_RDF['graph'], done?: () => void): void; removeQuad(quad: Q_RDF): void; removeQuads(quads: Q_RDF[]): void; remove(stream: RDF.Stream): EventEmitter; removeMatches(subject?: Term | RegExp, predicate?: Term | RegExp, object?: Term | RegExp, graph?: Term | RegExp): EventEmitter; deleteGraph(graph: Q_RDF['graph'] | string): EventEmitter; getQuads(subject: OTerm, predicate: OTerm, object: OTerm | OTerm[], graph: OTerm): Quad[]; match(subject?: Term | RegExp, predicate?: Term | RegExp, object?: Term | RegExp, graph?: Term | RegExp): RDF.Stream; countQuads(subject: OTerm, predicate: OTerm, object: OTerm, graph: OTerm): number; forEach(callback: QuadCallback, subject: OTerm, predicate: OTerm, object: OTerm, graph: OTerm): void; every(callback: QuadPredicate, subject: OTerm, predicate: OTerm, object: OTerm, graph: OTerm): boolean; some(callback: QuadPredicate, subject: OTerm, predicate: OTerm, object: OTerm, graph: OTerm): boolean; getSubjects(predicate: OTerm, object: OTerm, graph: OTerm): Array; forSubjects(callback: (result: Q_N3['subject']) => void, predicate: OTerm, object: OTerm, graph: OTerm): void; getPredicates(subject: OTerm, object: OTerm, graph: OTerm): Array; forPredicates(callback: (result: Q_N3['predicate']) => void, subject: OTerm, object: OTerm, graph: OTerm): void; getObjects(subject: OTerm, predicate: OTerm, graph: OTerm): Array; forObjects(callback: (result: Q_N3['object']) => void, subject: OTerm, predicate: OTerm, graph: OTerm): void; getGraphs(subject: OTerm, predicate: OTerm, object: OTerm): Array; forGraphs(callback: (result: Q_N3['graph']) => void, subject: OTerm, predicate: OTerm, object: OTerm): void; createBlankNode(suggestedName?: string): BlankNode; } export interface StoreOptions { factory?: RDF.DataFactory; } export namespace Util { function isNamedNode(value: RDF.Term | null): boolean; function isBlankNode(value: RDF.Term | null): boolean; function isLiteral(value: RDF.Term | null): boolean; function isVariable(value: RDF.Term | null): boolean; function isDefaultGraph(value: RDF.Term | null): boolean; function inDefaultGraph(value: RDF.Quad): boolean; function prefix(iri: RDF.NamedNode|string, factory?: RDF.DataFactory): PrefixedToIri; function prefixes( defaultPrefixes: Prefixes, factory?: RDF.DataFactory ): (prefix: string) => PrefixedToIri; }