import * as core from '@nomad-xyz/contracts-core';
import * as config from '@nomad-xyz/configuration';
import { Contracts } from '@nomad-xyz/multi-provider';
import { NomadContext } from './NomadContext';
export declare type LocalGovernor = {
    location: 'local';
    identifier: string;
};
export declare type RemoteGovernor = {
    location: 'remote';
    domain: number;
};
export declare type Governor = LocalGovernor | RemoteGovernor;
export declare class CoreContracts<T extends NomadContext> extends Contracts<config.Domain, NomadContext> {
    protected conf: config.EthereumCoreDeploymentInfo;
    private _governor?;
    constructor(context: T, domain: string, conf: config.EthereumCoreDeploymentInfo);
    /**
     * Resolves Replica with given domain
     *
     * @param nameOrDomain The name or domain ID of the Replica
     * @returns An interface for the Replica, undefined if not found
     */
    getReplica(nameOrDomain: string | number): core.Replica | undefined;
    get deployHeight(): number;
    get home(): core.Home;
    get governanceRouter(): core.GovernanceRouter;
    get xAppConnectionManager(): core.XAppConnectionManager;
    governor(): Promise<Governor>;
}
//# sourceMappingURL=CoreContracts.d.ts.map