/// <reference types="node" />
import type { Readable } from 'node:stream';
import type { NamedNode } from '@rdfjs/types';
import type { ParserOptions } from 'n3';
import type { Quad, Term } from 'rdf-js';
import type { Guarded } from './GuardedStream';
/**
 * Helper function for serializing an array of quads, with as result a Readable object.
 * @param quads - The array of quads.
 * @param contentType - The content-type to serialize to.
 *
 * @returns The Readable object.
 */
export declare function serializeQuads(quads: Quad[], contentType?: string): Guarded<Readable>;
/**
 * Helper function to convert a Readable into an array of quads.
 * @param readable - The readable object.
 * @param options - Options for the parser.
 *
 * @returns A promise containing the array of quads.
 */
export declare function parseQuads(readable: Guarded<Readable>, options?: ParserOptions): Promise<Quad[]>;
/**
 * Filter out duplicate quads from an array.
 * @param quads - Quads to filter.
 *
 * @returns A new array containing the unique quads.
 */
export declare function uniqueQuads(quads: Quad[]): Quad[];
/**
 * Converts a term to a number. Returns undefined if the term was undefined.
 *
 * @param term - Term to parse.
 * @param radix - Radix to use when parsing. Default is 10.
 */
export declare function termToInt(term?: Term, radix?: number): number | undefined;
/**
 * Represents a triple pattern to be used as a filter.
 */
export declare class FilterPattern {
    readonly subject: NamedNode | null;
    readonly predicate: NamedNode | null;
    readonly object: NamedNode | null;
    /**
     * @param subject - Optionally filter based on a specific subject.
     * @param predicate - Optionally filter based on a predicate.
     * @param object - Optionally filter based on a specific object.
     */
    constructor(subject?: string, predicate?: string, object?: string);
}
