import * as bsky from '@iameli/bsky';
import { AtpAgent } from '@iameli/api';
import { BskyConfig } from './types';
import { TestNetworkNoAppView } from './network-no-appview';
export declare class TestBsky {
    url: string;
    port: number;
    server: bsky.BskyAppView;
    indexer: bsky.BskyIndexer;
    ingester: bsky.BskyIngester;
    constructor(url: string, port: number, server: bsky.BskyAppView, indexer: bsky.BskyIndexer, ingester: bsky.BskyIngester);
    static create(cfg: BskyConfig): Promise<TestBsky>;
    get ctx(): bsky.AppContext;
    get sub(): import("@iameli/bsky/src/indexer/subscription").IndexerSubscription;
    getClient(): AtpAgent;
    adminAuth(role?: 'admin' | 'moderator' | 'triage'): string;
    adminAuthHeaders(role?: 'admin' | 'moderator' | 'triage'): {
        authorization: string;
    };
    processAll(): Promise<void>;
    close(): Promise<void>;
}
export declare function getIngester(network: TestNetworkNoAppView, opts: {
    name: string;
} & Partial<bsky.IngesterConfigValues>): Promise<bsky.BskyIngester>;
export declare function getIndexers(network: TestNetworkNoAppView, opts: Partial<bsky.IndexerConfigValues> & {
    name: string;
    partitionIdsByIndexer: number[][];
}): Promise<BskyIndexers>;
export type BskyIndexers = {
    db: bsky.Database;
    list: bsky.BskyIndexer[];
    start(): Promise<void>;
    destroy(): Promise<void>;
};
export declare function processAll(network: TestNetworkNoAppView, ingester: bsky.BskyIngester): Promise<void>;
export declare function ingestAll(network: TestNetworkNoAppView, ingester: bsky.BskyIngester): Promise<void>;
