import type { ResourceSet } from '../storage/ResourceSet';
import type { IdentifierStrategy } from '../util/identifiers/IdentifierStrategy';
import type { AuthorizerInput } from './Authorizer';
import { Authorizer } from './Authorizer';
/**
 * An {@link Authorizer} that does the necessary checks to return a 404 instead of a 401/403
 * when trying to delete a non-existent resource when the client has the correct read permissions.
 *
 * In other cases, the request gets handled by the source authorizer.
 */
export declare class ReadDeleteAuthorizer extends Authorizer {
    protected readonly logger: import("global-logger-factory").Logger<unknown>;
    protected readonly source: Authorizer;
    protected readonly resourceSet: ResourceSet;
    protected readonly identifierStrategy: IdentifierStrategy;
    constructor(source: Authorizer, resourceSet: ResourceSet, identifierStrategy: IdentifierStrategy);
    canHandle(input: AuthorizerInput): Promise<void>;
    handle(input: AuthorizerInput): Promise<void>;
}
