export declare class GxIdeStartPage {
    #private;
    el: HTMLGxIdeStartPageElement;
    /**
     * The kbs after the filter value.
     */
    filteredKbs: RecentKBData[];
    kbFilterValue: string;
    kbFilterValueChanged(newKbFilterValue: string): void;
    /**
     * True if the start page is waiting, either for the kb's list or the secondary section.
     */
    loading: boolean;
    /**
     * Callback invoked to create a new KB. It must be specified whether this create is create from server or not, through the parameter 'fromServer'.
     */
    readonly createKBCallback: (fromServer: boolean) => Promise<void>;
    /**
     * A temporary property to hide the "Open Existing Project" card.
     */
    readonly hideOpenExistingProject: boolean;
    /**
     * User's kbs array
     */
    readonly kbs: RecentKBData[];
    kbsChanged(newKbs: RecentKBData[]): void;
    /**
     * The minimum required of kbs to display a filter.
     */
    readonly kbsFilterThreshold: number;
    /**
     * Callback invoked to open a KB when the user clicks on a KB card.
     */
    readonly openKbCallback: (id: string) => Promise<void>;
    /**
     * Callback invoked when the user clicks a button to open a sample.
     */
    readonly openSampleCallback: (sampleId: string) => Promise<void>;
    /**
     * List of samples available to be displayed in the samples card.
     */
    readonly samples?: SampleData[];
    /**
     * The secondary section that will appear below the "Create a new Knowledge Base" main section. This section will be displayed if there are no recent kbs.
     */
    readonly secondarySection?: SecondarySection;
    componentWillLoad(): Promise<void>;
    render(): any;
}
export type CardInfo = {
    icon?: {
        src: string;
        ariaLabel: string;
    };
    title: string;
    description: string[];
    action?: {
        iconSrc: string;
        caption: string;
        callback?: () => void;
    };
};
export type RecentKBData = {
    id?: string;
    name: string;
    lastOpenedDate?: Date;
    icon: string;
    path?: string;
};
export type SampleData = {
    id: string;
    name: string;
};
export type SecondarySection = {
    title: string;
    cards: CardInfo[];
};
