/// <reference types="node" />
import type { ASTNode, StringValueNode } from 'graphql';
import { URL } from 'url';
import { Version } from './version';
export declare const ErrNoPath: (url: URL, node?: ASTNode | undefined) => import("./error").GraphQLErrorExt<"NoPath"> & {
    message: string;
    url: URL;
    nodes: ASTNode[] | undefined;
};
export declare const ErrNoName: (url: URL, node?: ASTNode | undefined) => import("./error").GraphQLErrorExt<"NoName"> & {
    message: string;
    url: URL;
    nodes: ASTNode[] | undefined;
};
export declare const ErrNoVersion: (url: URL, node?: ASTNode | undefined) => import("./error").GraphQLErrorExt<"NoVersion"> & {
    message: string;
    url: URL;
    nodes: ASTNode[] | undefined;
};
export interface ExtSpecifiedBy {
    extensions?: {
        specifiedBy?: string;
    };
}
export default class FeatureUrl {
    readonly identity: string;
    readonly name: string;
    readonly version: Version;
    readonly element?: string | undefined;
    constructor(identity: string, name: string, version: Version, element?: string | undefined);
    static parse(input: string, node?: ASTNode): FeatureUrl;
    static decode(node: StringValueNode): FeatureUrl;
    satisfies(requested: FeatureUrl): boolean;
    equals(other: FeatureUrl): boolean;
    get url(): string;
    get isDirective(): boolean | undefined;
    get elementName(): string | undefined;
    get base(): FeatureUrl;
    toString(): string;
}
//# sourceMappingURL=feature-url.d.ts.map