/* tslint:disable */
/* eslint-disable */
/**
* @param {string} value
* @returns {NamedNode}
*/
export function namedNode(value: string): NamedNode;
/**
* @param {string | undefined} value
* @returns {BlankNode}
*/
export function blankNode(value?: string): BlankNode;
/**
* @param {string | undefined} value
* @param {any} language_or_datatype
* @returns {Literal}
*/
export function literal(value: string | undefined, language_or_datatype: any): Literal;
/**
* @returns {DefaultGraph}
*/
export function defaultGraph(): DefaultGraph;
/**
* @param {string} value
* @returns {Variable}
*/
export function variable(value: string): Variable;
/**
* @param {any} subject
* @param {any} predicate
* @param {any} object
* @returns {Quad}
*/
export function triple(subject: any, predicate: any, object: any): Quad;
/**
* @param {any} subject
* @param {any} predicate
* @param {any} object
* @param {any} graph
* @returns {Quad}
*/
export function quad(subject: any, predicate: any, object: any, graph: any): Quad;
/**
* @param {any} original
* @returns {any}
*/
export function fromTerm(original: any): any;
/**
* @param {any} original
* @returns {any}
*/
export function fromQuad(original: any): any;
/**
*/
export function main(): void;
/**
*/
export class BlankNode {
  free(): void;
/**
* @returns {string}
*/
  toString(): string;
/**
* @param {any} other
* @returns {boolean}
*/
  equals(other: any): boolean;
/**
*/
  readonly termType: string;
/**
*/
  readonly value: string;
}
/**
*/
export class DefaultGraph {
  free(): void;
/**
* @returns {string}
*/
  toString(): string;
/**
* @param {any} other
* @returns {boolean}
*/
  equals(other: any): boolean;
/**
*/
  readonly termType: string;
/**
*/
  readonly value: string;
}
/**
*/
export class Literal {
  free(): void;
/**
* @returns {string}
*/
  toString(): string;
/**
* @param {any} other
* @returns {boolean}
*/
  equals(other: any): boolean;
/**
*/
  readonly datatype: NamedNode;
/**
*/
  readonly language: string;
/**
*/
  readonly termType: string;
/**
*/
  readonly value: string;
}
/**
*/
export class NamedNode {
  free(): void;
/**
* @returns {string}
*/
  toString(): string;
/**
* @param {any} other
* @returns {boolean}
*/
  equals(other: any): boolean;
/**
*/
  readonly termType: string;
/**
*/
  readonly value: string;
}
/**
*/
export class Quad {
  free(): void;
/**
* @returns {string}
*/
  toString(): string;
/**
* @param {any} other
* @returns {boolean}
*/
  equals(other: any): boolean;
/**
*/
  readonly graph: any;
/**
*/
  readonly object: any;
/**
*/
  readonly predicate: any;
/**
*/
  readonly subject: any;
/**
*/
  readonly termType: string;
/**
*/
  readonly value: string;
}
/**
*/
export class Store {
  free(): void;
/**
* @param {any[] | undefined} quads
*/
  constructor(quads?: any[]);
/**
* @param {any} quad
*/
  add(quad: any): void;
/**
* @param {any} quad
*/
  delete(quad: any): void;
/**
* @param {any} quad
* @returns {boolean}
*/
  has(quad: any): boolean;
/**
* @param {any} subject
* @param {any} predicate
* @param {any} object
* @param {any} graph_name
* @returns {any[]}
*/
  match(subject: any, predicate: any, object: any, graph_name: any): any[];
/**
* @param {string} query
* @returns {any}
*/
  query(query: string): any;
/**
* @param {string} update
*/
  update(update: string): void;
/**
* @param {string} data
* @param {string} mime_type
* @param {any} base_iri
* @param {any} to_graph_name
*/
  load(data: string, mime_type: string, base_iri: any, to_graph_name: any): void;
/**
* @param {string} mime_type
* @param {any} from_graph_name
* @returns {string}
*/
  dump(mime_type: string, from_graph_name: any): string;
/**
*/
  readonly size: number;
}
/**
*/
export class Variable {
  free(): void;
/**
* @returns {string}
*/
  toString(): string;
/**
* @param {any} other
* @returns {boolean}
*/
  equals(other: any): boolean;
/**
*/
  readonly termType: string;
/**
*/
  readonly value: string;
}

export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;

export interface InitOutput {
  readonly memory: WebAssembly.Memory;
  readonly namedNode: (a: number, b: number, c: number) => void;
  readonly blankNode: (a: number, b: number, c: number) => void;
  readonly literal: (a: number, b: number, c: number, d: number) => void;
  readonly defaultGraph: () => number;
  readonly variable: (a: number, b: number, c: number) => void;
  readonly triple: (a: number, b: number, c: number, d: number) => void;
  readonly quad: (a: number, b: number, c: number, d: number, e: number) => void;
  readonly fromTerm: (a: number, b: number) => void;
  readonly fromQuad: (a: number, b: number) => void;
  readonly __wbg_namednode_free: (a: number) => void;
  readonly namednode_term_type: (a: number, b: number) => void;
  readonly namednode_value: (a: number, b: number) => void;
  readonly namednode_toString: (a: number, b: number) => void;
  readonly namednode_equals: (a: number, b: number) => number;
  readonly __wbg_blanknode_free: (a: number) => void;
  readonly blanknode_term_type: (a: number, b: number) => void;
  readonly blanknode_value: (a: number, b: number) => void;
  readonly blanknode_toString: (a: number, b: number) => void;
  readonly blanknode_equals: (a: number, b: number) => number;
  readonly __wbg_literal_free: (a: number) => void;
  readonly literal_term_type: (a: number, b: number) => void;
  readonly literal_value: (a: number, b: number) => void;
  readonly literal_language: (a: number, b: number) => void;
  readonly literal_datatype: (a: number) => number;
  readonly literal_toString: (a: number, b: number) => void;
  readonly literal_equals: (a: number, b: number) => number;
  readonly __wbg_defaultgraph_free: (a: number) => void;
  readonly defaultgraph_term_type: (a: number, b: number) => void;
  readonly defaultgraph_value: (a: number, b: number) => void;
  readonly defaultgraph_toString: (a: number, b: number) => void;
  readonly defaultgraph_equals: (a: number, b: number) => number;
  readonly variable_term_type: (a: number, b: number) => void;
  readonly variable_value: (a: number, b: number) => void;
  readonly variable_toString: (a: number, b: number) => void;
  readonly variable_equals: (a: number, b: number) => number;
  readonly __wbg_quad_free: (a: number) => void;
  readonly quad_term_type: (a: number, b: number) => void;
  readonly quad_value: (a: number, b: number) => void;
  readonly quad_subject: (a: number) => number;
  readonly quad_predicate: (a: number) => number;
  readonly quad_object: (a: number) => number;
  readonly quad_graph: (a: number) => number;
  readonly quad_toString: (a: number, b: number) => void;
  readonly quad_equals: (a: number, b: number) => number;
  readonly __wbg_store_free: (a: number) => void;
  readonly store_new: (a: number, b: number, c: number) => void;
  readonly store_add: (a: number, b: number, c: number) => void;
  readonly store_delete: (a: number, b: number, c: number) => void;
  readonly store_has: (a: number, b: number, c: number) => void;
  readonly store_size: (a: number, b: number) => void;
  readonly store_match: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
  readonly store_query: (a: number, b: number, c: number, d: number) => void;
  readonly store_update: (a: number, b: number, c: number, d: number) => void;
  readonly store_load: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => void;
  readonly store_dump: (a: number, b: number, c: number, d: number, e: number) => void;
  readonly main: () => void;
  readonly __wbg_variable_free: (a: number) => void;
  readonly __wbindgen_malloc: (a: number, b: number) => number;
  readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
  readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
  readonly __wbindgen_free: (a: number, b: number, c: number) => void;
  readonly __wbindgen_exn_store: (a: number) => void;
  readonly __wbindgen_start: () => void;
}

export type SyncInitInput = BufferSource | WebAssembly.Module;
/**
* Instantiates the given `module`, which can either be bytes or
* a precompiled `WebAssembly.Module`.
*
* @param {SyncInitInput} module
*
* @returns {InitOutput}
*/
export function initSync(module: SyncInitInput): InitOutput;

/**
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
* for everything else, calls `WebAssembly.instantiate` directly.
*
* @param {InitInput | Promise<InitInput>} module_or_path
*
* @returns {Promise<InitOutput>}
*/
export default function __wbg_init (module_or_path?: InitInput | Promise<InitInput>): Promise<InitOutput>;
