import type { Address, AppFilters, Network, SubscriptionCallback, SubscriptionHandler } from '@1hive/connect-types';
import { ConnectionContext } from '../types';
import IOrganizationConnector from './IOrganizationConnector';
import App from '../entities/App';
import Organization from '../entities/Organization';
import Permission from '../entities/Permission';
import Repo from '../entities/Repo';
import Role from '../entities/Role';
export declare type ConnectorJsonConfig = {
    permissions: Permission[];
    network: Network;
};
declare class ConnectorJson implements IOrganizationConnector {
    #private;
    connection?: ConnectionContext;
    readonly config: ConnectorJsonConfig;
    readonly name = "json";
    readonly network: Network;
    constructor(config: ConnectorJsonConfig);
    connect(connection: ConnectionContext): Promise<void>;
    disconnect(): Promise<void>;
    permissionsForOrg(): Promise<Permission[]>;
    onPermissionsForOrg(organization: Organization, callback: SubscriptionCallback<Permission[]>): SubscriptionHandler;
    app(organization: Organization, filters: AppFilters): Promise<App>;
    apps(filters: AppFilters): Promise<App[]>;
    appForOrg(organization: Organization): Promise<App>;
    onAppForOrg(organization: Organization, filters: AppFilters, callback: SubscriptionCallback<App>): SubscriptionHandler;
    appsForOrg(organization: Organization): Promise<App[]>;
    onAppsForOrg(organization: Organization, filters: AppFilters, callback: SubscriptionCallback<App[]>): SubscriptionHandler;
    repoForApp(organization: Organization, appAddress: Address): Promise<Repo>;
    appByAddress(organization: Organization, appAddress: Address): Promise<App>;
    rolesForAddress(organization: Organization, appAddress: Address): Promise<Role[]>;
}
export default ConnectorJson;
//# sourceMappingURL=ConnectorJson.d.ts.map