import { DataSource } from "./source-base";
import { WellKnownMetadata } from "../../constants";
type SitemapFilterContext = {
    url: string;
    lastmod?: string;
    changefreq?: string;
    priority?: string;
};
type FetchResult = {
    url: string;
    contentType: string;
    content: string;
    metadata?: {
        [WellKnownMetadata.knowledge.TITLE]?: string;
        [WellKnownMetadata.knowledge.DESCRIPTION]?: string;
        [WellKnownMetadata.knowledge.FAVICON]?: string;
    };
};
type WebsiteSourceOptions = {
    id?: string;
    filter?: (context: SitemapFilterContext) => boolean;
    fetch?: (url: string) => Promise<FetchResult> | FetchResult;
    maxPages?: number;
    maxDepth?: number;
};
type UrlsSourceOptions = {
    id?: string;
    fetch?: (url: string) => Promise<FetchResult> | FetchResult;
};
export declare class WebsiteSource extends DataSource {
    private mode;
    private baseUrl;
    private sitemapUrl;
    private urls;
    private filterFn;
    private customFetch;
    private maxPages;
    private maxDepth;
    private transformFn;
    private constructor();
    private isBrowserIntegrationAvailable;
    /**
     * Fetch content from a URL with fallback strategy
     */
    private fetchSitemap;
    /**
     * Fetch content from a URL with fallback strategy
     */
    private fetchUrl;
    /**
     * Parse sitemap XML content
     */
    private parseSitemapXml;
    /**
     * Parse sitemap TXT content
     */
    private parseSitemapTxt;
    /**
     * Discover URLs from a website using browser integration
     */
    private discoverUrlsFromWebsite;
    /**
     * Discover all URLs from sitemap with depth and page limits
     */
    private discoverUrls;
    get syncWorkflow(): import("../workflow").BaseWorkflow<`data_source_sync_${string}`, import("@bpinternal/zui").ZodObject<{
        sourceId: import("@bpinternal/zui").ZodString;
        kbName: import("@bpinternal/zui").ZodString;
        force: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodBoolean>>;
    }, "strip", {
        kbName: string;
        sourceId: string;
        force: boolean;
    }, {
        kbName: string;
        sourceId: string;
        force?: boolean | undefined;
    }>, import("@bpinternal/zui").ZodObject<{
        processed: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodNumber>;
        added: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodArray<import("@bpinternal/zui").ZodObject<{
            file: import("@bpinternal/zui").ZodString;
            name: import("@bpinternal/zui").ZodString;
            hash: import("@bpinternal/zui").ZodString;
            size: import("@bpinternal/zui").ZodNumber;
        }, "strip", {
            name: string;
            size: number;
            hash: string;
            file: string;
        }, {
            name: string;
            size: number;
            hash: string;
            file: string;
        }>, "many">>;
        updated: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodArray<import("@bpinternal/zui").ZodObject<{
            file: import("@bpinternal/zui").ZodString;
            name: import("@bpinternal/zui").ZodString;
            hash: import("@bpinternal/zui").ZodString;
            size: import("@bpinternal/zui").ZodNumber;
        }, "strip", {
            name: string;
            size: number;
            hash: string;
            file: string;
        }, {
            name: string;
            size: number;
            hash: string;
            file: string;
        }>, "many">>;
        deleted: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodArray<import("@bpinternal/zui").ZodObject<{
            file: import("@bpinternal/zui").ZodString;
            name: import("@bpinternal/zui").ZodString;
            hash: import("@bpinternal/zui").ZodString;
            size: import("@bpinternal/zui").ZodNumber;
        }, "strip", {
            name: string;
            size: number;
            hash: string;
            file: string;
        }, {
            name: string;
            size: number;
            hash: string;
            file: string;
        }>, "many">>;
        errors: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodArray<import("@bpinternal/zui").ZodString, "many">>;
    }, "strip", {
        processed: number;
        added: {
            name: string;
            size: number;
            hash: string;
            file: string;
        }[];
        updated: {
            name: string;
            size: number;
            hash: string;
            file: string;
        }[];
        deleted: {
            name: string;
            size: number;
            hash: string;
            file: string;
        }[];
        errors: string[];
    }, {
        processed?: number | undefined;
        added?: {
            name: string;
            size: number;
            hash: string;
            file: string;
        }[] | undefined;
        updated?: {
            name: string;
            size: number;
            hash: string;
            file: string;
        }[] | undefined;
        deleted?: {
            name: string;
            size: number;
            hash: string;
            file: string;
        }[] | undefined;
        errors?: string[] | undefined;
    }>, import("@bpinternal/zui").ZodObject<{
        urls: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodArray<import("@bpinternal/zui").ZodObject<{
            loc: import("@bpinternal/zui").ZodString;
            lastmod: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodString>;
            changefreq: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodString>;
            priority: import("@bpinternal/zui").ZodOptional<import("@bpinternal/zui").ZodString>;
        }, "strip", {
            loc: string;
            lastmod?: string | undefined;
            changefreq?: string | undefined;
            priority?: string | undefined;
        }, {
            loc: string;
            lastmod?: string | undefined;
            changefreq?: string | undefined;
            priority?: string | undefined;
        }>, "many">>;
        queue: import("@bpinternal/zui").ZodDefault<import("@bpinternal/zui").ZodArray<import("@bpinternal/zui").ZodObject<{
            url: import("@bpinternal/zui").ZodString;
            depth: import("@bpinternal/zui").ZodNumber;
        }, "strip", {
            url: string;
            depth: number;
        }, {
            url: string;
            depth: number;
        }>, "many">>;
    }, "strip", {
        urls: {
            loc: string;
            lastmod?: string | undefined;
            changefreq?: string | undefined;
            priority?: string | undefined;
        }[];
        queue: {
            url: string;
            depth: number;
        }[];
    }, {
        urls?: {
            loc: string;
            lastmod?: string | undefined;
            changefreq?: string | undefined;
            priority?: string | undefined;
        }[] | undefined;
        queue?: {
            url: string;
            depth: number;
        }[] | undefined;
    }>, Record<string, import("../../types").ZuiType>>;
    static fromWebsite(baseUrl: string, options?: WebsiteSourceOptions): WebsiteSource;
    static fromSitemap(sitemapUrl: string, options?: WebsiteSourceOptions): WebsiteSource;
    static fromUrls(urls: string[], options?: UrlsSourceOptions): WebsiteSource;
}
export {};
//# sourceMappingURL=source-website.d.ts.map