import { TwirpContext, TwirpServer } from 'twirp-ts';
import { InstallationUpgradeRequest, FullInstallationInfo, InstallationUpgradeManyRequest, InstallationUpgradeManyResponse } from './installation/installation.js';
import { GetPendingRequest, GetResponse, UpdateStatusForAppRequest } from './fetch_domain_request/fetch_domain_request.js';
import { Empty } from '../../google/protobuf/empty.js';
import { Int32Value } from '../../google/protobuf/wrappers.js';
import { GetAppBySlugWithDomainInfoRequest, AppWithDomainInfo, GetAppsWithDomainInfoRequest, GetAppsWithDomainInfoResponse, AddDomainsToAppRequest, RemoveDomainFromAppRequest } from './app/app.js';
import { ListCuratedGamesRequest, ListCuratedGamesResponse, AddCuratedGameRequest, AddCuratedGameResponse, UpdateCuratedGameRankRequest, UpdateCuratedGameRankResponse, RemoveCuratedGameRequest } from './curated_game/curated_game.js';
export interface AdminInstallationTwirp<T extends TwirpContext = TwirpContext> {
    Upgrade(ctx: T, request: InstallationUpgradeRequest): Promise<FullInstallationInfo>;
    UpgradeMany(ctx: T, request: InstallationUpgradeManyRequest): Promise<InstallationUpgradeManyResponse>;
}
export declare enum AdminInstallationMethod {
    Upgrade = "Upgrade",
    UpgradeMany = "UpgradeMany"
}
export declare const AdminInstallationMethodList: AdminInstallationMethod[];
export declare function createAdminInstallationServer<T extends TwirpContext = TwirpContext>(service: AdminInstallationTwirp<T>): TwirpServer<AdminInstallationTwirp<TwirpContext<import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>>>, T>;
export interface AdminFetchDomainRequestTwirp<T extends TwirpContext = TwirpContext> {
    GetPending(ctx: T, request: GetPendingRequest): Promise<GetResponse>;
    GetPendingRequestsCount(ctx: T, request: Empty): Promise<Int32Value>;
    UpdateStatusForApp(ctx: T, request: UpdateStatusForAppRequest): Promise<Empty>;
}
export declare enum AdminFetchDomainRequestMethod {
    GetPending = "GetPending",
    GetPendingRequestsCount = "GetPendingRequestsCount",
    UpdateStatusForApp = "UpdateStatusForApp"
}
export declare const AdminFetchDomainRequestMethodList: AdminFetchDomainRequestMethod[];
export declare function createAdminFetchDomainRequestServer<T extends TwirpContext = TwirpContext>(service: AdminFetchDomainRequestTwirp<T>): TwirpServer<AdminFetchDomainRequestTwirp<TwirpContext<import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>>>, T>;
export interface AdminAppTwirp<T extends TwirpContext = TwirpContext> {
    GetAppBySlugWithDomainInfo(ctx: T, request: GetAppBySlugWithDomainInfoRequest): Promise<AppWithDomainInfo>;
    GetAppsWithDomainInfo(ctx: T, request: GetAppsWithDomainInfoRequest): Promise<GetAppsWithDomainInfoResponse>;
    AddDomainsToApp(ctx: T, request: AddDomainsToAppRequest): Promise<Empty>;
    RemoveDomainFromApp(ctx: T, request: RemoveDomainFromAppRequest): Promise<Empty>;
}
export declare enum AdminAppMethod {
    GetAppBySlugWithDomainInfo = "GetAppBySlugWithDomainInfo",
    GetAppsWithDomainInfo = "GetAppsWithDomainInfo",
    AddDomainsToApp = "AddDomainsToApp",
    RemoveDomainFromApp = "RemoveDomainFromApp"
}
export declare const AdminAppMethodList: AdminAppMethod[];
export declare function createAdminAppServer<T extends TwirpContext = TwirpContext>(service: AdminAppTwirp<T>): TwirpServer<AdminAppTwirp<TwirpContext<import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>>>, T>;
export interface AdminCuratedGameTwirp<T extends TwirpContext = TwirpContext> {
    ListGames(ctx: T, request: ListCuratedGamesRequest): Promise<ListCuratedGamesResponse>;
    AddGame(ctx: T, request: AddCuratedGameRequest): Promise<AddCuratedGameResponse>;
    UpdateGameRank(ctx: T, request: UpdateCuratedGameRankRequest): Promise<UpdateCuratedGameRankResponse>;
    RemoveGame(ctx: T, request: RemoveCuratedGameRequest): Promise<Empty>;
}
export declare enum AdminCuratedGameMethod {
    ListGames = "ListGames",
    AddGame = "AddGame",
    UpdateGameRank = "UpdateGameRank",
    RemoveGame = "RemoveGame"
}
export declare const AdminCuratedGameMethodList: AdminCuratedGameMethod[];
export declare function createAdminCuratedGameServer<T extends TwirpContext = TwirpContext>(service: AdminCuratedGameTwirp<T>): TwirpServer<AdminCuratedGameTwirp<TwirpContext<import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>>>, T>;
//# sourceMappingURL=admin_portal.twirp.d.ts.map