import { SmzMenuItem } from '../../modules/smz-menu/models/smz-menu-item';
import { SmzCardsState } from '../../modules/smz-cards/models/smz-cards-state';
import { SmzCardsMenuBuilder } from './menu-builder';
import { Observable } from 'rxjs';
import { SmzCardsTemplateBuilder, SmzCardViewBuilder } from './template-builder';
import { SmzCardsSourcesBuilder } from './source-builder';
import { SmzAdvancedInjectable } from '../../modules/smz-cards/models/smz-cards-component';
export declare class SmzCardsBuilder<TData> {
    _state: SmzCardsState<TData>;
    constructor(uiDefinitionName?: string);
    setSource(items$: Observable<TData[]>): SmzCardsBuilder<TData>;
    sources(): SmzCardsSourcesBuilder<TData>;
    setTitle(title: string): SmzCardsBuilder<TData>;
    hideHeader(): SmzCardsBuilder<TData>;
    template(): SmzCardsTemplateBuilder<TData, SmzCardsBuilder<TData>>;
    grid(): SmzCardViewBuilder<TData>;
    list(): SmzCardViewBuilder<TData>;
    setDynamicTitle(callback: () => string): SmzCardsBuilder<TData>;
    setRowsPerPage(rows: number): SmzCardsBuilder<TData>;
    setDataViewContainerStyles(styles: string): SmzCardsBuilder<TData>;
    setDataVieStyleClass(styles: string): SmzCardsBuilder<TData>;
    setGridStyleClass(styles: string): SmzCardsBuilder<TData>;
    hidePaginator(): SmzCardsBuilder<TData>;
    setLocale(language: 'pt-BR' | 'en-US'): SmzCardsBuilder<TData>;
    hideLayoutOptions(): SmzCardsBuilder<TData>;
    setEmptyMessage(message: string): SmzCardsBuilder<TData>;
    setComponentEmptyMessage(component: any): SmzCardsInjectableComponentBuilder<SmzCardsBuilder<TData>>;
    buttons(items?: SmzMenuItem[]): SmzCardsMenuBuilder;
    menu(items?: SmzMenuItem[]): SmzCardsMenuBuilder;
    debugMode(): SmzCardsBuilder<TData>;
    build(): SmzCardsState<TData>;
}
export declare class SmzCardsInjectableComponentBuilder<TBuilder> {
    protected _parent: TBuilder;
    protected _injectable: SmzAdvancedInjectable;
    protected that: this;
    constructor(_parent: TBuilder, _injectable: SmzAdvancedInjectable);
    addDataToInput(input: string): SmzCardsInjectableComponentBuilder<TBuilder>;
    addContextToInput(input: string): SmzCardsInjectableComponentBuilder<TBuilder>;
    addInputFromModel(input: string, dataPath: any): SmzCardsInjectableComponentBuilder<TBuilder>;
    addInput(input: string, value: any): SmzCardsInjectableComponentBuilder<TBuilder>;
    addOutput(output: string, callback: (data: any) => void): SmzCardsInjectableComponentBuilder<TBuilder>;
    get cards(): TBuilder;
}
