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;
}
/**
 * Reconstructs the original URL of an incoming {@link HttpRequest}.
 */
export declare class OriginalUrlExtractor extends TargetExtractor {
    private readonly identifierStrategy;
    private readonly includeQueryString;
    constructor(args: OriginalUrlExtractorArgs);
    handle({ request: { url, connection, headers } }: {
        request: HttpRequest;
    }): Promise<ResourceIdentifier>;
}
