import { Command } from "commander"; import { Client, Models } from "@appwrite.io/console"; import type { ConfigType } from "./config.js"; import type { SettingsType, FunctionType, SiteType } from "./config.js"; export interface PullOptions { all?: boolean; settings?: boolean; functions?: boolean; sites?: boolean; collections?: boolean; tables?: boolean; buckets?: boolean; teams?: boolean; webhooks?: boolean; topics?: boolean; skipDeprecated?: boolean; withVariables?: boolean; noCode?: boolean; resourceDirectories?: { functions?: string; sites?: string; }; } interface PullFunctionsOptions { code?: boolean; withVariables?: boolean; functionIds?: string[]; } interface PullSitesOptions { code?: boolean; withVariables?: boolean; siteIds?: string[]; } export interface PullSettingsResult { projectName: string; settings: SettingsType; project: Models.Project; } export declare class Pull { private projectClient; private consoleClient; private configDirectoryPath; private silent; constructor(projectClient: Client, consoleClient: Client, silent?: boolean); /** * Set the base directory path for config files and resources */ setConfigDirectoryPath(path: string): void; /** * Log a message (respects silent mode) */ private log; /** * Log a success message (respects silent mode) */ private success; /** * Log a warning message (respects silent mode) */ private warn; /** * Pull resources from Appwrite project and return updated config * * @param config - Current configuration object * @param options - Pull options specifying which resources to pull * @returns Updated configuration object with pulled resources */ pullResources(config: ConfigType, options?: PullOptions): Promise; /** * Pull project settings */ pullSettings(projectId: string): Promise; /** * Pull functions from the project */ pullFunctions(options?: PullFunctionsOptions): Promise; /** * Pull sites from the project */ pullSites(options?: PullSitesOptions): Promise; /** * Pull collections from the project (deprecated) */ pullCollections(): Promise<{ databases: any[]; collections: any[]; }>; /** * Pull tables from the project */ pullTables(): Promise<{ databases: any[]; tables: any[]; }>; /** * Pull storage buckets from the project */ pullBuckets(): Promise; /** * Pull teams from the project */ pullTeams(): Promise; /** * Pull webhooks from the project */ pullWebhooks(): Promise; /** * Pull messaging topics from the project */ pullMessagingTopics(): Promise; } /** Helper methods for CLI commands */ export declare const pullResources: ({ skipDeprecated, }?: { skipDeprecated?: boolean; }) => Promise; /** Commander.js exports */ export declare const pull: Command; export {}; //# sourceMappingURL=pull.d.ts.map