import * as pds from '@iameli/pds';
import * as bsky from '@iameli/bsky';
import * as bsync from '@iameli/bsync';
import * as ozone from '@iameli/ozone';
import { ImageInvalidator } from '@iameli/bsky';
import { ExportableKeypair } from '@iameli/crypto';
export type PlcConfig = {
    port?: number;
    version?: string;
};
export type PdsConfig = Partial<pds.ServerEnvironment> & {
    didPlcUrl: string;
    migration?: string;
};
export type BskyConfig = Partial<bsky.ServerConfig> & {
    plcUrl: string;
    repoProvider: string;
    labelProvider: string;
    dbPrimaryPostgresUrl: string;
    redisHost: string;
    pdsPort: number;
    imgInvalidator?: ImageInvalidator;
    migration?: string;
    indexer?: Partial<bsky.IndexerConfig>;
    ingester?: Partial<bsky.IngesterConfig>;
};
export type BsyncConfig = Partial<bsync.ServerEnvironment> & {
    dbUrl: string;
};
export type OzoneConfig = Partial<ozone.OzoneEnvironment> & {
    plcUrl: string;
    appviewUrl: string;
    dbPostgresUrl: string;
    migration?: string;
    signingKey?: ExportableKeypair;
};
export type TestServerParams = {
    dbPostgresUrl: string;
    dbPostgresSchema: string;
    pds: Partial<PdsConfig>;
    plc: Partial<PlcConfig>;
    bsky: Partial<BskyConfig>;
    ozone: Partial<OzoneConfig>;
};
