import { JsonWebKey } from '../jwk/jsonwebkey';
import { JsonWebKeySetParameters } from './jsonwebkeyset.parameters';
/**
 * Implementation of a JSON Web Key Set.
 *
 * @see https://www.rfc-editor.org/rfc/rfc7517.html#section-5
 */
export declare class JsonWebKeySet implements JsonWebKeySetParameters {
    /**
     * JSON Web Keys registered at the JSON Web Key Set.
     */
    readonly keys: JsonWebKey[];
    /**
     * Instantiates a new JSON Web Key Set based on the provided JSON Web Keys.
     *
     * @param keys JSON Web Keys to be registered at the JSON Web Key Set.
     */
    constructor(keys: JsonWebKey[]);
    /**
     * Loads the provided Parameters into a JSON Web Key Set.
     *
     * @param parameters Parameters of the JSON Web Key Set.
     * @returns JSON Web Key Set based on the provided Parameters.
     */
    static load(parameters: JsonWebKeySetParameters): JsonWebKeySet;
    /**
     * Parses a JSON String into a JSON Web Key Set.
     *
     * @param data JSON String representation of the JSON Web Key Set to be parsed.
     * @returns Instance of a JSON Web Key Set based on the provided JSON String.
     */
    static parse(data: string): JsonWebKeySet;
    /**
     * Finds and returns a JSON Web Key that satisfies the provided predicate.
     *
     * @param predicate Predicate used to locate the requested JSON Web Key.
     * @returns JSON Web Key that satisfies the provided predicate.
     */
    find<T extends JsonWebKey>(predicate: (key: JsonWebKey) => boolean): T | null;
    /**
     * Returns the Parameters of the JSON Web Key Set.
     *
     * @param exportPublic Exports only the Public Parameters of the JSON Web Keys.
     */
    toJSON(exportPublic?: boolean): JsonWebKeySetParameters;
}
