import type EventEmitter from "node:events";
import type { Api } from "@superblocksteam/util";
import { type RouteDefinition } from "./router-parser.js";
type PageData = {
    route: string;
    contents: string;
    name: string;
    fileName: string;
};
export declare function getRoutes(rootDir: string): Promise<RouteDefinition[]>;
export declare function getAllPages({ rootDir, }: {
    rootDir: string;
}): Promise<PageData[]>;
export declare const getPageName: (filePath: string) => string;
export declare const getScopeNameFromPath: (filePath: string) => string | null;
/**
 * Generates a scope ID directly from a page file path.
 * This eliminates the need for scope.ts files and AST parsing.
 *
 * @param filePath - The page file path (e.g., "pages/Dashboard/index.tsx")
 * @returns The scope ID, or null if the path doesn't represent a page
 */
export declare const getScopeIdFromPath: (filePath: string) => string | null;
export declare const getScopeIdFromName: (name: string) => string;
export declare function getAllApiDefinitions({ rootDir, currentUrl: _currentUrl, }: {
    rootDir: string;
    currentUrl: string;
}): Promise<Array<{
    name: string;
    fileName: string;
}>>;
export declare function getApiDefinitionPath({ rootDir, currentUrl, apiName, }: {
    rootDir: string;
    currentUrl: string;
    apiName: string;
}): Promise<{
    name: string;
    fileName: string;
} | undefined>;
export declare const isValidApi: (api: Api) => boolean | "" | undefined;
/**
 * Call this on an EventEmitter to have it print all of its events in an inspectable format.
 * Very useful for debugging events.
 */
export declare function debugEventEmitter(emitter: EventEmitter, name: string): void;
export {};
//# sourceMappingURL=util.d.ts.map