export declare type FilterShape = 'color' | 'text' | 'size';
export declare type FilterType = 'category' | 'attributes' | 'sort' | 'dynamics' | 'all';
export declare type ElementType = 'sub' | 'child';
export interface FilterElement {
    title: string;
    type: ElementType;
    code: string;
    multi?: boolean;
    children?: FilterElement[];
    shape?: FilterShape;
    value?: string;
    selected?: boolean;
}
export interface IFilter {
    generated_url: string;
    data: any;
    type(): FilterType;
    setContent(options: any): void;
    getContent(): FilterElement[];
    setSelected(element: FilterElement, value: string): any;
    toUrlParams(): string;
}
export declare type DefaultFilter = {
    filter_type: FilterType;
    codes: string[];
};
