import { PublicDataSource, RelationalDatabaseSchema } from '@kottster/common';
import { AppData } from '../models/appData';
interface GetDataInput {
    appId: string;
}
interface SendUsageDataInput {
    appId: string;
    userId: number;
    numberOfNavItems?: number;
    numberOfDataSources?: number;
    numberOfDatabaseTables?: number;
}
interface GeneratePageContentInput {
    appId: string;
    usingTsc: boolean;
    dataSource: PublicDataSource;
    databaseSchema: RelationalDatabaseSchema;
    contentType: string;
    table?: string;
    generationOptions?: {
        allowInsert: boolean;
        allowUpdate: boolean;
        allowDelete: boolean;
    };
}
export declare class KottsterApi {
    static get JWT_TOKEN(): string | null;
    static get API_BASE_URL(): any;
    static handleUnauthorized(): void;
    static checkForJWTToken(): void;
    /**
     * Get the app data.
     */
    static getData(input: GetDataInput): Promise<AppData | null>;
    /**
     * Send usage data to the server when user opens the app.
     * Usage data includes only the following information:
     * - App ID
     * - User ID
     * - Development mode (true/false)
     * - Number of navigation items
     * - Number of data sources
     * - Whether the app is hosted on localhost
     * - @kottster/react version
     */
    static sendUsageData(input: SendUsageDataInput): Promise<boolean>;
    /**
     * Generate content for page.
     */
    static generatePageContent(input: GeneratePageContentInput): Promise<{
        pageContent: string;
    } | null>;
}
export {};
