import { BigNumberish, ethers } from 'ethers';
import { ChannelDetails, ChannelMetadata, EntitlementDetails, EntitlementModuleType, EntitlementShim, Permission, RoleDetails, RoleEntitlements } from '../ContractTypes';
import { IChannelShim } from './IChannelShim';
import { IRolesBase, IRolesShim } from './IRolesShim';
import { ISpaceOwnerBase, ISpaceOwnerShim } from './ISpaceOwnerShim';
import { IEntitlementsShim } from './IEntitlementsShim';
import { IMulticallShim } from './IMulticallShim';
import { OwnableFacetShim } from './OwnableFacetShim';
import { TokenPausableFacetShim } from './TokenPausableFacetShim';
import { IMembershipShim } from './IMembershipShim';
import { IBanningShim } from './IBanningShim';
import { ITippingShim } from './ITippingShim';
import { IERC721AQueryableShim } from './IERC721AQueryableShim';
import { IEntitlementDataQueryableShim } from './IEntitlementDataQueryableShim';
import { BaseChainConfig } from '../IStaticContractsInfo';
import { IPrepayShim } from './IPrepayShim';
import { IERC721AShim } from './IERC721AShim';
import { IReviewShim } from './IReviewShim';
export declare class Space {
    private readonly address;
    private readonly addressToEntitlement;
    private readonly spaceId;
    readonly provider: ethers.providers.Provider | undefined;
    private readonly channel;
    private readonly entitlements;
    private readonly multicall;
    private readonly ownable;
    private readonly pausable;
    private readonly roles;
    private readonly spaceOwner;
    private readonly membership;
    private readonly banning;
    private readonly erc721AQueryable;
    private readonly entitlementDataQueryable;
    private readonly prepay;
    private readonly erc721A;
    private readonly spaceOwnerErc721A;
    private readonly tipping;
    private readonly review;
    constructor(address: string, spaceId: string, config: BaseChainConfig, provider: ethers.providers.Provider | undefined);
    private getAllShims;
    get Address(): string;
    get SpaceId(): string;
    get Channels(): IChannelShim;
    get Multicall(): IMulticallShim;
    get Ownable(): OwnableFacetShim;
    get Pausable(): TokenPausableFacetShim;
    get Roles(): IRolesShim;
    get Entitlements(): IEntitlementsShim;
    get SpaceOwner(): ISpaceOwnerShim;
    get Membership(): IMembershipShim;
    get Banning(): IBanningShim;
    get ERC721AQueryable(): IERC721AQueryableShim;
    get EntitlementDataQueryable(): IEntitlementDataQueryableShim;
    get Prepay(): IPrepayShim;
    get ERC721A(): IERC721AShim;
    get SpaceOwnerErc721A(): IERC721AShim;
    get Tipping(): ITippingShim;
    get Review(): IReviewShim;
    totalTips({ currency }: {
        currency: string;
    }): Promise<{
        count: bigint;
        amount: bigint;
    }>;
    getSpaceInfo(): Promise<ISpaceOwnerBase.SpaceStruct>;
    getRole(roleId: BigNumberish): Promise<RoleDetails | null>;
    getChannel(channelNetworkId: string): Promise<ChannelDetails | null>;
    getChannelMetadata(channelNetworkId: string): Promise<ChannelMetadata | null>;
    getChannels(): Promise<ChannelMetadata[]>;
    getChannelRoles(channelNetworkId: string): Promise<IRolesBase.RoleStructOutput[]>;
    getPermissionsByRoleId(roleId: number): Promise<Permission[]>;
    private getChannelRoleEntitlements;
    findEntitlementByType(entitlementType: EntitlementModuleType): Promise<EntitlementShim | null>;
    parseError(error: unknown): Error;
    parseLog(log: ethers.providers.Log): ethers.utils.LogDescription;
    private getEntitlementByAddress;
    private getRoleInfo;
    getEntitlementShims(): Promise<EntitlementShim[]>;
    getEntitlementDetails(entitlementShims: EntitlementShim[], roleId: BigNumberish): Promise<EntitlementDetails>;
    private getChannelsWithRole;
    private getRolesInfo;
    getRoleEntitlements(entitlementShims: EntitlementShim[], roleId: BigNumberish): Promise<RoleEntitlements | null>;
    getTokenIdsOfOwner(linkedWallets: string[]): Promise<string[]>;
    getProtocolFee(): Promise<bigint>;
    /**
     * This function is potentially expensive and should be used with caution.
     * For example, a space with 1000 members will make 1000 + 1 calls to the blockchain.
     * @param untilTokenId - The token id to stop at, if not provided, will get all members
     * @returns An array of member addresses
     */
    __expensivelyGetMembers(untilTokenId?: BigNumberish): Promise<string[]>;
}
//# sourceMappingURL=Space.d.ts.map