///
import express from 'express';
import * as functions from 'firebase-functions';
import { AppSettings, CreateTrigger, DeleteTrigger, Job, Route, UpdateTrigger } from '.';
export declare type AppMemory = '128MB' | '256MB' | '512MB' | '1GB' | '2GB';
export declare type AppFunction = functions.HttpsFunction;
export declare type AppSchedule = functions.CloudFunction;
export declare const DEFAULT_PORT = 5000;
export declare const DEFAULT_APP_NAME = "app";
export declare const DEFAULT_TIMEOUT_S = 540;
export declare const DEFAULT_MEMORY: AppMemory;
export declare class App {
private name;
private app;
private timeoutSeconds;
private memory;
private minInstances?;
private maxInstances?;
private preRequestMiddleware;
private postRequestMiddleware;
private authMetadataMiddleware;
constructor(settings: AppSettings);
get expressApp(): express.Express;
route: (...routes: Route[]) => void;
subscribe: (job: Job) => AppSchedule;
onWrite: (eventTrigger: UpdateTrigger) => functions.CloudFunction>;
onUpdate: (eventTrigger: UpdateTrigger) => functions.CloudFunction>;
onCreate: (eventTrigger: CreateTrigger) => functions.CloudFunction;
onDelete: (eventTrigger: DeleteTrigger) => functions.CloudFunction;
start: () => AppFunction;
local: (port?: number) => import("http").Server;
private registerExpressMiddleware;
}