declare const EXACT_ENTITY_SUPPORT_RULE = "exact-entity";
declare const NEIGHBORHOOD_SUPPORT_RULE = "neighborhood";
declare const TRAVERSAL_WINDOW_SUPPORT_RULE = "traversal-window";
declare const GLOBAL_DISCOVERY_REFUSED_SUPPORT_RULE = "global-discovery-refused";
export type OpticSupportRuleValue = typeof EXACT_ENTITY_SUPPORT_RULE | typeof NEIGHBORHOOD_SUPPORT_RULE | typeof TRAVERSAL_WINDOW_SUPPORT_RULE | typeof GLOBAL_DISCOVERY_REFUSED_SUPPORT_RULE;
export declare const OPTIC_SUPPORT_RULES: readonly OpticSupportRuleValue[];
export default class OpticSupportRule {
    readonly value: OpticSupportRuleValue;
    constructor(value: string);
    static exactEntity(): OpticSupportRule;
    static neighborhood(): OpticSupportRule;
    static traversalWindow(): OpticSupportRule;
    static globalDiscoveryRefused(): OpticSupportRule;
    isExactEntity(): boolean;
    isNeighborhood(): boolean;
    isTraversalWindow(): boolean;
    refusesGlobalDiscovery(): boolean;
    equals(other: OpticSupportRule): boolean;
    toString(): string;
}
export declare function requireOpticSupportRuleValue(value: string): OpticSupportRuleValue;
export {};
