import { EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';
import { RealsoftSort } from './sort';
import * as i0 from "@angular/core";
/**
* Directive for automatically sorting alphabetical/string columns in a table.
* This directive extends the base RealsoftSort functionality
* and automatically handles string sorting.
*
* Usage:
*
*/
export declare class RealsoftAlphabeticalSort extends RealsoftSort implements OnInit, OnChanges {
/**
* The data array to be sorted.
* When this changes or sort changes, the data will be automatically sorted.
*/
data: any[];
/**
* Event emitted with the sorted data.
* This fires whenever the sort changes or the input data changes.
*/
sortedData: EventEmitter;
/**
* Whether the comparison should be case-sensitive.
* Default is case-insensitive sorting.
*/
caseSensitive: boolean;
/**
* Locale to use for string comparison.
* Uses the browser's default locale if not specified.
*/
locale?: string | string[];
/**
* Whether to use natural sort order (e.g., "item2" before "item10").
* This handles numeric portions within strings intelligently.
*/
naturalSort: boolean;
/**
* How to handle null/undefined values.
* 'first' - null values appear first
* 'last' - null values appear last
*/
nullHandling: 'first' | 'last';
/**
* Whether to trim whitespace before comparison.
*/
trimWhitespace: boolean;
/**
* Whether to sort immediately when data is provided.
* If false, data will only be sorted when user clicks a column header.
*/
sortOnInit: boolean;
ngOnInit(): void;
ngOnChanges(changes?: SimpleChanges): void;
/**
* Performs the actual sorting and emits the result
*/
private performSort;
/**
* Compares two string values based on sort direction
*/
private compareAlphabetical;
/**
* Helper to get nested object properties using dot notation
*/
private getNestedProperty;
/**
* Public method to trigger a re-sort with current settings
*/
resort(): void;
/**
* Public method to clear sorting and return original data
*/
clearSort(): void;
/**
* Utility method to filter and sort strings that start with a specific letter
*/
filterByFirstLetter(letter: string): any[];
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}