import type { HttpRequest } from '../../../server/HttpRequest';
import type { IdentifierStrategy } from '../../../util/identifiers/IdentifierStrategy';
import type { ResourceIdentifier } from '../../representation/ResourceIdentifier';
import { TargetExtractor } from './TargetExtractor';
export interface OriginalUrlExtractorArgs {
    /**
     * The IdentifierStrategy to use for checking the scope of the request
     */
    identifierStrategy: IdentifierStrategy;
    /**
     * Specify whether the OriginalUrlExtractor should include the request query string.
     */
    includeQueryString?: boolean;
    /**
     * Forces the server to always assume the host header to be the value of the defined base URL.
     * Useful for debugging when you're trying to access the server both internally and externally.
     */
    fixedBaseUrl?: string;
}
/**
 * Reconstructs the original URL of an incoming {@link HttpRequest}.
 */
export declare class OriginalUrlExtractor extends TargetExtractor {
    protected readonly logger: import("global-logger-factory").Logger<unknown>;
    protected readonly identifierStrategy: IdentifierStrategy;
    protected readonly includeQueryString: boolean;
    protected readonly fixedHost?: string;
    constructor(args: OriginalUrlExtractorArgs);
    handle({ request: { url, socket, headers } }: {
        request: HttpRequest;
    }): Promise<ResourceIdentifier>;
}
