export declare class MatchRule {
    /**
     * The suffix which the candidate must end with in order to match.
     */
    suffix: string;
    /**
     * Indicates whether the match must be exact (the candidate must
     * not have any prefix) or not.
     */
    exact: boolean;
    constructor(
    /**
     * The suffix which the candidate must end with in order to match.
     */
    suffix: string, 
    /**
     * Indicates whether the match must be exact (the candidate must
     * not have any prefix) or not.
     */
    exact: boolean);
}
export declare class FastSuffixMatcher {
    _suffixLength: number;
    rules: {
        [host: string]: MatchRule[];
    };
    constructor(rules: MatchRule[] | null);
    isMatch(candidate: string): boolean;
    static createFromExisting(existing: FastSuffixMatcher | null, rules: MatchRule[] | null): FastSuffixMatcher | null;
}
declare class KustoTrustedEndpointsImpl {
    matchers: {
        [host: string]: FastSuffixMatcher;
    };
    additionalMatcher: FastSuffixMatcher | null;
    overrideMatcher: ((host: string) => boolean) | null;
    constructor();
    setOverridePolicy(matcher: ((host: string) => boolean) | null): void;
    validateTrustedEndpoint(url: URL | string, loginEndpoint: string): void;
    addTrustedHosts(rules: MatchRule[] | null, replace: boolean): void;
    _validateHostnameIsTrusted(hostname: string, loginEndpoint: string): void;
    _isLocalAddress(host: string): boolean;
}
export declare const kustoTrustedEndpoints: KustoTrustedEndpointsImpl;
export {};
//# sourceMappingURL=kustoTrustedEndpoints.d.ts.map