import type { Video } from "../..";
import type { BeeClient, EthernaGatewayClient, Reference, RequestOptions } from "../../clients";
import type { SwarmResourcePinStatus } from "./types";
interface EthernaResourcesHandlerOptions {
    client: EthernaGatewayClient | BeeClient;
}
interface EthernaPinningFetchOptions {
    withByWhom?: boolean;
}
export declare class EthernaPinningHandler {
    pinStatus?: SwarmResourcePinStatus[];
    references: Reference[];
    private client;
    constructor(videos: Video[], opts: EthernaResourcesHandlerOptions);
    constructor(references: Reference[], opts: EthernaResourcesHandlerOptions);
    isGatewayClient(client: EthernaGatewayClient | BeeClient): client is EthernaGatewayClient;
    fetchPins(opts?: EthernaPinningFetchOptions): Promise<void>;
    pinResources(opts?: RequestOptions): Promise<void>;
    unpinResources(opts?: RequestOptions): Promise<void>;
    getVideoReferencesStatus(video: Video): SwarmResourcePinStatus[];
    getReferenceStatus(reference: string): SwarmResourcePinStatus | null;
    getVideoPinStatus(video: Video): SwarmResourcePinStatus[];
}
export {};
//# sourceMappingURL=index.d.ts.map