import { type Accept, isAccept } from '../lib/mime.js';
import { Parser } from '../lib/parser.js';
import type { ResourcePermission } from '../lib/resource-permission.js';
import { type NeArray, type NeRoArray, type ParamValue, type ScopeSyntax } from '../lib/syntax.js';
export { type Accept };
export declare const DEFAULT_ACCEPT: readonly ["*/*"];
export type BlobPermissionMatch = {
    mime: string;
};
export declare class BlobPermission implements ResourcePermission<'blob', BlobPermissionMatch> {
    readonly accept: NeRoArray<Accept>;
    constructor(accept: NeRoArray<Accept>);
    matches(options: BlobPermissionMatch): boolean;
    toString(): import("../lib/syntax.js").ScopeStringFor<"blob">;
    protected static readonly parser: Parser<"blob", {
        accept: {
            multiple: true;
            required: true;
            validate: typeof isAccept;
            normalize: (value: NeRoArray<ParamValue>) => NeArray<Accept> | readonly ["*/*"];
        };
    }>;
    static fromString(scope: string): BlobPermission | null;
    static fromSyntax(syntax: ScopeSyntax<'blob'>): BlobPermission | null;
    static scopeNeededFor(options: BlobPermissionMatch): import("../lib/syntax.js").ScopeStringFor<"blob">;
}
//# sourceMappingURL=blob-permission.d.ts.map