import { AllowedComponentProps } from 'vue';
import { ComponentCustomProps } from 'vue';
import { ComponentOptionsMixin } from 'vue';
import { DefineComponent } from 'vue';
import { ExtractPropTypes } from 'vue';
import { PropType } from 'vue';
import { VNodeProps } from 'vue';

declare type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};

declare interface PropConfigType {
    gap: number[];
    columns: number[];
    medias?: number[];
}

export declare const waterFall: __VLS_WithTemplateSlots<DefineComponent<{
    data: {
        type: PropType<string[]>;
        default: () => never[];
        require: boolean;
    };
    config: {
        type: PropType<PropConfigType>;
        default: () => {};
        require: boolean;
    };
}, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    data: {
        type: PropType<string[]>;
        default: () => never[];
        require: boolean;
    };
    config: {
        type: PropType<PropConfigType>;
        default: () => {};
        require: boolean;
    };
}>>, {
    data: string[];
    config: PropConfigType;
}, {}>, {
    default?(_: {
        key: number;
        src: string;
    }): any;
}>;

export { }
