'use static';
/*
* Copyright (c) 2026 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License"),
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @file
* @kit ArkUI
*/
import { ComponentBuilder, CustomBuilder, Builder, CustomBuilderT } from '@ohos.arkui.component';
import { AttributeModifier, CommonMethod, OnVisibleIndexesChangeCallback, ItemFillPolicy} from '@ohos.arkui.component';
import { LengthMetrics } from './arkui/Graphics';
import { StickyStyle } from '@ohos.arkui.component';
/**
* The LazyWaterFlowLayoutAttribute
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 26.0.0 static
* @noninterop
*/
export declare interface LazyWaterFlowLayoutAttribute extends CommonMethod {
/**
* The spacing between rows.
*
* @param { LengthMetrics | undefined } value - The spacing between rows.
* <br>Default value: LengthMetrics.vp(0)
* @returns { this }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 26.0.0 static
*/
default rowsGap(value: LengthMetrics | undefined): this;
/**
* The spacing between columns.
*
* @param { LengthMetrics | undefined } value - The spacing between columns.
* <br>Default value: LengthMetrics.vp(0)
* @returns { this }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 26.0.0 static
*/
default columnsGap(value: LengthMetrics | undefined): this;
/**
* Sets the header of the lazy lazy water layout.
*
* @param { CustomBuilder | undefined } builder - The header builder function
* <br>Passing undefined will remove the header.
* @returns { this }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 26.0.0 static
*/
default header(builder: CustomBuilder | undefined): this;
/**
* Sets the footer of the lazy water flow layout.
*
* @param { CustomBuilder | undefined } builder - The footer builder function
* <br>Passing undefined will remove the footer.
* @returns { this }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 26.0.0 static
*/
default footer(builder: CustomBuilder | undefined): this;
/**
* Sets sticky style for header and footer.
*
* @param { StickyStyle | undefined } sticky - The sticky style for header and footer.
* @returns { this }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 26.0.0 static
*/
default sticky(sticky: StickyStyle | undefined): this;
/**
* Called when the first or last item displayed in the component changes.
* It is triggered once when the component is initialized.
*
* @param { OnVisibleIndexesChangeCallback | undefined } callback - callback function, triggered
* when the index of child components in the visible area changes.
* <br>Passing undefined will unregister the callback.
* @returns { this }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 26.0.0 static
*/
default onVisibleIndexesChange(callback: OnVisibleIndexesChangeCallback | undefined): this;
}
/**
* The LazyVWaterFlowLayoutAttribute
*
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 26.0.0 static
* @noninterop
*/
export declare interface LazyVWaterFlowLayoutAttribute extends LazyWaterFlowLayoutAttribute {
/**
* This parameter specifies the number of columns in the current waterflow layout.
*
* @param { string | ItemFillPolicy | undefined } value - Number of columns in the layout.
* <br>Default value: '1fr'
* @returns { this }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 26.0.0 static
*/
default columnsTemplate(value: string | ItemFillPolicy | undefined): this;
/**
* Set LazyVWaterFlowLayout options.
*
* @returns { this }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @unpublished
* @stagemodelonly
* @since 26.1.0 staticonly
*/
default setLazyVWaterFlowLayoutOptions(): this;
/**
* Sets the attribute modifier.
*
* @param { AttributeModifier<LazyVWaterFlowLayoutAttribute> | AttributeModifier<CommonMethod> | undefined } modifier
* @returns { this }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 26.0.0 static
*/
default attributeModifier(
modifier: AttributeModifier<LazyVWaterFlowLayoutAttribute> | AttributeModifier<CommonMethod> | undefined): this;
}
/**
* Defines LazyVWaterFlowLayout Component.
*
* @param { CustomBuilder } [content_]
* @returns { LazyVWaterFlowLayoutAttribute }
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @stagemodelonly
* @since 26.0.0 static
* @noninterop
*/
@ComponentBuilder
export declare function LazyVWaterFlowLayout (
content_?: CustomBuilder,
): LazyVWaterFlowLayoutAttribute;
/**
* Defines LazyVWaterFlowLayout Component.
*
* @param { CustomBuilderT<LazyVWaterFlowLayoutAttribute> } style_ - The style to create a LazyVWaterFlowLayout.
* @param { CustomBuilder } [content_]
* @returns { LazyVWaterFlowLayoutAttribute } The attribute of the LazyVWaterFlowLayout.
* @syscap SystemCapability.ArkUI.ArkUI.Full
* @unpublished
* @stagemodelonly
* @since 26.1.0 staticonly
* @noninterop
*/
@Builder
export declare function LazyVWaterFlowLayout(
style_: CustomBuilderT<LazyVWaterFlowLayoutAttribute>,
content_?: CustomBuilder
): LazyVWaterFlowLayoutAttribute;