/* tslint:disable */
/* eslint-disable */
/**
* wasm_bindgen annoted adapter of IndexingForest4 intended for wasm-tree-frontend
*/
export class ForestOfIdentifierQuads {
  free(): void;
/**
* Builds an empty Quad Forest with a OGPS tree and optionals SPOG, GPSO,
* POGS, GSPO and OSGP trees that will be built when a match request is
* received for them.
*/
  constructor();
/**
* Returns the number of quads
* @returns {number}
*/
  size(): number;
/**
* Adds the given quad
* @param {number} s
* @param {number} p
* @param {number} o
* @param {number} g
*/
  add(s: number, p: number, o: number, g: number): void;
/**
* Removes the given quad
* @param {number} s
* @param {number} p
* @param {number} o
* @param {number} g
*/
  remove(s: number, p: number, o: number, g: number): void;
/**
* Returns true if the tree has the specified quad
* @param {number} s
* @param {number} p
* @param {number} o
* @param {number} g
* @returns {boolean}
*/
  has(s: number, p: number, o: number, g: number): boolean;
/**
* Returns a slice with every quad flattened
* @param {number | undefined} s
* @param {number | undefined} p
* @param {number | undefined} o
* @param {number | undefined} g
* @returns {Uint32Array}
*/
  get_all(s?: number, p?: number, o?: number, g?: number): Uint32Array;
/**
* Builds a new dataset which is built by filtering with the given s, p, o and g.
* @param {number | undefined} s
* @param {number | undefined} p
* @param {number | undefined} o
* @param {number | undefined} g
* @returns {ForestOfIdentifierQuads}
*/
  new_from(s?: number, p?: number, o?: number, g?: number): ForestOfIdentifierQuads;
/**
* Insert every quads described in the passed identifier list.
*
* the identifier list is a multiple of 4 size array in which every
* integer can be grouped in groups of 4 to get the identifier of
* the subjet, the predicate, the object and the graph of each quad.
* @param {Uint32Array} encoded_quads
*/
  insertFromIdentifierList(encoded_quads: Uint32Array): void;
/**
* Builds a ForestOfIdentifierQuads from an identifier list of quads
* 
* If you have previously extracted an identifier list from get_all, you
* can easily build a new dataset with this function.
* @param {Uint32Array} encoded_quads
* @returns {ForestOfIdentifierQuads}
*/
  static fromIdentifierList(encoded_quads: Uint32Array): ForestOfIdentifierQuads;
/**
* Removes from the dataset the quads that matches the given pattern
* @param {number | undefined} s
* @param {number | undefined} p
* @param {number | undefined} o
* @param {number | undefined} g
*/
  deleteMatches(s?: number, p?: number, o?: number, g?: number): void;
/**
* @param {ForestOfIdentifierQuads} other
* @returns {ForestOfIdentifierQuads}
*/
  insersect(other: ForestOfIdentifierQuads): ForestOfIdentifierQuads;
/**
* @param {Uint32Array} other
* @returns {ForestOfIdentifierQuads}
*/
  intersectIdentifierList(other: Uint32Array): ForestOfIdentifierQuads;
/**
* @param {Uint32Array} other
* @returns {ForestOfIdentifierQuads}
*/
  unionIdentifierList(other: Uint32Array): ForestOfIdentifierQuads;
/**
* @param {Uint32Array} other
* @returns {ForestOfIdentifierQuads}
*/
  differenceIdentifierList(other: Uint32Array): ForestOfIdentifierQuads;
/**
* @param {ForestOfIdentifierQuads} other
* @returns {ForestOfIdentifierQuads}
*/
  union(other: ForestOfIdentifierQuads): ForestOfIdentifierQuads;
/**
* @param {ForestOfIdentifierQuads} other
* @returns {ForestOfIdentifierQuads}
*/
  difference(other: ForestOfIdentifierQuads): ForestOfIdentifierQuads;
/**
* @param {ForestOfIdentifierQuads} other
* @returns {boolean}
*/
  contains(other: ForestOfIdentifierQuads): boolean;
/**
* @param {Uint32Array} other
* @returns {boolean}
*/
  containsIdentifierList(other: Uint32Array): boolean;
/**
* @param {Uint32Array} other
* @returns {boolean}
*/
  equalsIdentifierList(other: Uint32Array): boolean;
/**
* @param {ForestOfIdentifierQuads} other
* @returns {boolean}
*/
  has_same_elements(other: ForestOfIdentifierQuads): boolean;
/**
* Counts the number of quads that matches the given pattern
* @param {number | undefined} s
* @param {number | undefined} p
* @param {number | undefined} o
* @param {number | undefined} g
* @returns {number}
*/
  matchCount(s?: number, p?: number, o?: number, g?: number): number;
/**
* Ensures the best tree to search quads matching the given pattern is built
* @param {boolean} s
* @param {boolean} p
* @param {boolean} o
* @param {boolean} g
*/
  ensureHasIndexfor(s: boolean, p: boolean, o: boolean, g: boolean): void;
/**
* Counts the number of living trees
* @returns {number}
*/
  getNumberOfLivingTrees(): number;
}
