import { File, PredefinedAcl } from '@google-cloud/storage';
export interface VisibilityHandlingForGoogleCloudStorage {
    changeVisibility(file: File, visibility: string): Promise<void>;
    determineVisibility(file: File): Promise<string>;
    visibilityToPredefinedAcl(visibility: string): PredefinedAcl | undefined;
}
export declare class UniformBucketLevelAccessVisibilityHandling implements VisibilityHandlingForGoogleCloudStorage {
    private readonly errorOnChange;
    private readonly errorOnDetermine;
    private readonly fakeVisibility;
    constructor(errorOnChange?: boolean, errorOnDetermine?: boolean, fakeVisibility?: string);
    changeVisibility(file: File, visibility: string): Promise<void>;
    determineVisibility(file: File): Promise<string>;
    visibilityToPredefinedAcl(visibility: string): PredefinedAcl | undefined;
}
export declare class LegacyVisibilityHandling implements VisibilityHandlingForGoogleCloudStorage {
    private readonly entity;
    private readonly publicAcl;
    private readonly privateAcl;
    constructor(entity?: string, publicAcl?: PredefinedAcl, privateAcl?: PredefinedAcl);
    changeVisibility(file: File, visibility: string): Promise<void>;
    determineVisibility(file: File): Promise<string>;
    visibilityToPredefinedAcl(visibility: string): PredefinedAcl | undefined;
}
