export interface EmptyError extends Error {
}
export interface EmptyErrorCtor {
    new (): EmptyError;
}
/**
 * An error thrown when an Observable or a sequence was queried but has no
 * elements.
 *
 * @see {@link first}
 * @see {@link last}
 * @see {@link single}
 *
 * @class EmptyError
 */
export declare const EmptyError: EmptyErrorCtor;
